如何validation文件是否存在于DOS(Windows命令提示符).BAT文件中?
我必须创build一个.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
调用其他batch file。
如果是在Bash环境中,对我来说很简单,但我不知道如何testing一个文件或文件夹是否存在,以及它是否是一个文件或文件夹。
您可以使用IF EXIST来检查文件:
IF EXIST "filename" ( REM Do one thing ) ELSE ( REM Do another thing )
如果您想查找驱动器或目录,请参阅http://support.microsoft.com/kb/65994中的示例;
键入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:mdy 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.bat myprogram.ini调用其他batch file。
我不确定这是什么意思,但如果你只是想打开这两个文件,你只需要把文件的path
Path/sync.bat Path/myprogram.ini
如果是在Bash环境中,对我来说很简单,但我不知道如何testing一个文件或文件夹是否存在,以及它是否是一个文件或文件夹。
您正在使用batch file。 你之前提到你必须创build一个.bat文件来使用这个:
我必须创build一个.BAT文件这样做: