Как проверить, существует ли файл в DOS (Командная строка Windows).Файл BAT?
я должен создать вот это:
- если выход;
- если
C:myprogramhtmldata.sql
не существует, выход; - на
C:myprogramsync
удалить все файлы и папки, кроме (test
,test3
иtest2
) - скопировать
C:myprogramhtmldata.sql
toC:myprogramsync
- вызов другого пакетного файла с опцией
sync.bat myprogram.ini
.
если это было в среде Bash, это было легко для меня, но я не знаю, как проверить, если файл или папка существует и, если это файл или папка.
3 ответов
вы можете использовать IF EXIST для проверки файла:
IF EXIST "filename" (
REM Do one thing
) ELSE (
REM Do another thing
)
вот рабочий пример поиска файла или папки:
REM setup
echo "some text" > filename
mkdir "foldername"
REM finds file
IF EXIST "filename" (
ECHO file filename exists
) ELSE (
ECHO file filename does not exist
)
REM does not find file
IF EXIST "filename2.txt" (
ECHO file filename2.txt exists
) ELSE (
ECHO file filename2.txt does not exist
)
REM folders must have a trailing backslash
REM finds folder
IF EXIST "foldername\" (
ECHO folder foldername exists
) ELSE (
ECHO folder foldername does not exist
)
REM does not find folder
IF EXIST "filename\" (
ECHO folder filename exists
) ELSE (
ECHO folder filename does not exist
)
введите IF/? чтобы получить помощь о if, он четко объясняет, как использовать IF EXIST.
чтобы удалить полное дерево, кроме некоторых папок, см. ответ на этот вопрос:пакетный скрипт Windows для удаления всего в папке, кроме одного
наконец копирование просто означает вызов COPY и вызов другого файла bat можно сделать следующим образом:
MYOTHERBATFILE.BAT sync.bat myprogram.ini
вот хороший пример того, как выполнить команду, если файл существует или не существует:
if exist C:\myprogram\sync\data.handler echo Now Exiting && Exit
if not exist C:\myprogram\html\data.sql Exit
мы возьмем эти три файла и поместим их во временное место. После удаления папки он восстановит эти три файла.
xcopy "test" "C:\temp"
xcopy "test2" "C:\temp"
del C:\myprogram\sync\
xcopy "C:\temp" "test"
xcopy "C:\temp" "test2"
del "c:\temp"
использовать команда xcopy:
xcopy "C:\myprogram\html\data.sql" /c /d /h /e /i /y "C:\myprogram\sync\"
я объясню, что такое /c /d /h /e /i /y
означает:
/C Continues copying even if errors occur.
/D:m-d-y Copies files changed on or after the specified date.
If no date is given, copies only those files whose
source time is newer than the destination time.
/H Copies hidden and system files also.
/E Copies directories and subdirectories, including empty ones.
Same as /S /E. May be used to modify /T.
/T Creates directory structure, but does not copy files. Does not
include empty directories or subdirectories. /T /E includes
/I If destination does not exist and copying more than one file,
assumes that destination must be a directory.
/Y Suppresses prompting to confirm you want to overwrite an
existing destination file.
`To see all the commands type`xcopy /? in cmd
вызов другого пакетного файла с опцией sync.летучая мышь иногда.ini.
Я не уверен, что вы подразумеваете под этим, но если вы просто хотите открыть оба этих файла, вы просто поместите путь к файлу, как
Path/sync.bat
Path/myprogram.ini
если бы это было в среде Bash это было легко для меня, но я не знать, как проверить, существует ли файл или папка, и если это файл или папка.
вы используете пакетный файл. Вы упомянули ранее, что вам нужно создать a .bat файл, чтобы использовать это:
Я должен создать .Файл BAT, который делает это: