Reputation: 1718
This is related to my earlier question.
ren "C:\Temp\%%A" "%%A"
if errorlevel 0 (
"C:\Program Files\7-Zip\cmdline\7za.exe" a -tzip -mx9 "C:\temp\Zip\%%A.zip" "C:\temp\%%A"
Move "C:\temp\%%A" "C:\Temp\Archive"
)
In the above, the IF evaluates to true always, even if REN command fails.
The idea is to check if a file is not locked by any other application, if not then Archive it and move it elsewhere.
How best to do this?
Thank you.
Upvotes: 0
Views: 7200
Reputation: 5640
REN is an internal command and does not set ERRORLEVEL (I'm looking for the same answer here)
Upvotes: -1
Reputation: 1
you can also make a rem.bat that'll make the error level calling something like this IF ERRORLEVEL==300 call rem.bat or you can just make every error level unlockable by using a level of 0. you can varrie on things not only will it make the app run more smoothy but itll creat no lagging in the way ur fan speed will stay the same as the errorlevel will use more cpu usage.
Upvotes: -1
Reputation: 25206
Type help if
on the command line to get some information on the errorlevel handling.
The problem with your code is, that the expression IF ERRORLEVEL N
is evaluated to true for any number equal to or greater than N
Usually only ERRORLEVEL 0 indicates success, any other (greater) value is a sign of some error. To simply check, if nor error occurred, reverse your check to:
IF NOT ERRORLEVEL 1 (
REM your code here
)
or as an alternative, exit the script:
IF ERRORLEVEL 1 EXIT /B
Upvotes: 5