我想将 Windows XP 中的文件从桌面(一个文件夹)复制/移动到我的文档(另一个文件夹),该文件是由相同的批处理文件在当前日期以 DD/MM/YYYY 格式创建的。
当 .BAT 文件位于桌面文件夹中时,一切正常。
@echo off
set date="%date:~7,2%-%date:~4,2%-%date:~10,4%"
mkdir %date%
copy *.txt \%date%
pause
现在这个.BAT 正在做的是在桌面上创建文件夹 18-01-2013 并复制此文件夹中的所有.TXT 文件。
但这是行不通的,
@echo off
set date="%date:~7,2%-%date:~4,2%-%date:~10,4%"
mkdir %USERPROFILE%\My Documents\%date%
copy %USERPROFILE%\desktop\*.txt %USERPROFILE%\My Documents\%date%
pause
这个.BAT 文件正在创建这些文件夹;
- 在 C 盘 > 文件
- 在桌面上(以及,Chandel > 我的、文档 > 18-01-2013、设置 > Anshuman)
非常感谢您对这方面提供的任何帮助!
答案1
您需要"
在包含或可能包含空格或其他特殊字符的路径周围放置双引号 ( )。为了安全起见,我总是在脚本中引用所有路径,以防万一。此外,您需要删除变量值周围的引号,这些变量值稍后将成为其他路径的组成部分。因此,从该行中删除引号set date
并将其添加到下两行。
所以你的脚本应该是:
@echo off
set date=%date:~7,2%-%date:~4,2%-%date:~10,4%
mkdir "%USERPROFILE%\My Documents\%date%"
copy "%USERPROFILE%\desktop\*.txt" "%USERPROFILE%\My Documents\%date%"
pause