我必须创建一个执行此操作的 .BAT
文件:
- 如果
C:\myprogram\sync\data.handler
存在,则退出; - 如果
C:\myprogram\html\data.sql
不存在,则退出; - 在
C:\myprogram\sync\
中删除除 (test
、test3
和test2
之外的所有文件和文件夹>) - 将
C:\myprogram\html\data.sql
复制到C:\myprogram\sync\
- 使用选项
sync.bat myprogram.ini
调用其他批处理文件。
如果是在 Bash 环境下对我来说很容易,但我不知道如何测试文件或文件夹是否存在以及它是否是文件或文件夹。
最佳答案
您可以使用 IF EXIST 检查文件:
IF EXIST "filename" (
REM Do one thing
) ELSE (
REM Do another thing
)
如果你不需要“else”,你可以这样做:
set __myVariable=
IF EXIST "C:\folder with space\myfile.txt" set __myVariable=C:\folder with space\myfile.txt
IF EXIST "C:\some other folder with space\myfile.txt" set __myVariable=C:\some other folder with space\myfile.txt
set __myVariable=
这是一个搜索文件或文件夹的工作示例:
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
)
关于windows - 如何验证文件是否存在于批处理文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3022176/