如果不存在则创建文件

时间:2011-07-12 17:07:03

标签: batch-file

我的脚本创建备份当前目录中的所有文件如下:

    @echo off
set year= %date:~10,4%
set month = %date:~4,2%
set day = %date:~7,2%
set folder= %date:~4,2%-%date:~7,2%-%date:~10,4%

if not exists "%CD%"\%folder%  
(
xcopy "%CD%" "%CD%"\%folder%\ /l /v /s /t /i /y
)

但这总是给我 " C:\ Documents and Settings \ username \ Desktop" \目前是意料之外的。

任何人都可以指导我朝正确的方向发展

2 个答案:

答案 0 :(得分:1)

您应该将整个路径用双引号括起来,而不仅仅是它的一部分。而不是

"%CD%"\%folder%

最有可能是

"%CD%\%folder%"

但无论如何,我认为您无法将文件夹的内容复制到其自己的子文件夹中。

另一件事是,它应该是IF NOT EXIST

答案 1 :(得分:1)

if exist检查是否存在FILE。如果你想检查一个文件夹,使用NUL文件名需要一个小技巧,它总是存在于任何文件夹和任何扩展名中:

if not exist "%CD%\%folder%\NUL" ...

我希望它有所帮助

安东尼奥

PS - 我可以建议您另一种方法来创建文件夹名称吗?

for /F "tokens=1-3 delims=/" %%a in ("%date%") do set folder=%%a-%%b-%%c