批处理文件将文件从桌面位置复制到另一个位置?

批处理文件将文件从桌面位置复制到另一个位置?

我想将 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 文件正在创建这些文件夹;

  1. 在 C 盘 > 文件
  2. 在桌面上(以及,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

相关内容