I wrote a program that does a lot of script like things using system calls. I have found that some windows commands, when passed as string arguments to the system, will interpret a path name as relative, and others need absolute path names; for example I can use CD and robocopy with relative paths, but I can't use del with relative path names. I am getting around this by using the command "cd [relative path] & del [somefile]". Is there a better way to do this?
Well, why don't you use a script? Batch (or Windows PowerShell, if your version of Windows has it) is perfectly acceptable, and it makes more sense to use one of them, especially considering your program was going to be non-portable anyway.
The program does a lot of things that are somewhat logically complex for a batch file. I am sure its possible in a batch file, but I haven't written any batch and I wrote what I wrote instead. Is the simple answer that it can't be done?