if statement - Batch files: If directory exists, do something -
i'm trying following:
if exists ("c:\users\user\desktop\folder1\") { move "c:\users\user\desktop\folder2\" "c:\users\user\desktop\folder1\" rename "c:\users\user\desktop\folder1\folder2\" "folder3" } else { mkdir "c:\users\user\desktop\folder1\" move "c:\users\user\desktop\folder2\" "c:\users\user\desktop\folder1\" rename "c:\users\user\desktop\folder1\folder2\" "folder3" } with following code:
@echo on if exist "c:\users\user\desktop\folder1\" (goto mover) print "it doesn't exists - debugging" pause :mover echo "mover" pause exit :end but system not print test words.
if exist checks if file exists , cannot check folders. usually, test
if not exist "myfolder\nul" mkdir "myfolder" the pseudo device nul acts file , in fact exist in every folder. note spelling.
but have seen test fail in batchfiles, unknown reasons. suggest instead:
cd myfolder 2>nul && cd .. || md myfolder cd myfolder tries legal operation folder , conditional execution of md/mkdir creates folder if operation fails. cd .. reverts action if folder should exist. 2>nul suppresses error message if folder not exist.
edit: apparantly there simpler method testing: append backslash (\) foldername make syntactically folder, this:
if not exist myfolder\ md myfolder || goto :eof this create folder "myfolder" if not yet exist. additionally, in case there file named "myfolder" md fail , batch file terminated after error message displayed. also, errorlevel set. more error output doesn't have redirected.
edit: if want execute several commands, run them in subshell, is, enclose them in parantheses this:
if not exist myfolder\ ( md myfolder dir myfolder rem ...or run other commands ) || goto :eof
Comments
Post a Comment