Closed aleaksunder closed 10 months ago
I struggled a lot with what to do about errorlevel. Many tools, including copy, can be asked to do a lot of operations in a single command. In that context, what does it mean to succeed? In particular, what does copy *.c *.h c:\tmp
mean if there are no .h
files?
What I ended up doing was defining success as "the command successfully did at least one thing." That was in direct response to the case above, where failure to find one of the arguments isn't fatal, but failure to find all of them is. (Note that in UNIX the shell would expand these arguments, so the program being invoked has no way to know that an argument didn't expand to anything, so this behavior is trying to be consistent with that.)
It's true that this policy results in counter-intuitive behavior for the case you're describing here. But revisiting this goes back to the original problem, which is trying to distinguish expected failures from unexpected failures, where some failures return success and others are truly fatal.
Hi!
I don't know is this an issue or not but it seems that "-p" key means to preserve existing files. So if you try to:
"ycopy.exe" -p C:\file C:\existing_file
or"ycopy.exe" -s -p C:\dir\* C:\existing_dir
It seems for me that there is nothing to worry about if files already exists and ERRORLEVEL should not be raised to 1 or maybe should be raised to some other value like 2 or something to catch this exact situation.