【问题标题】:XCOPY Folder with Variable Name and Spaces具有变量名称和空格的 XCOPY 文件夹
【发布时间】:2015-10-29 13:49:06
【问题描述】:

我想创建一个批处理,从某些文件夹中删除文件,然后将它们从另一个目的地(另一个服务器)复制回其中。其中一些文件夹将具有变量名称,因为它们是根据月份和年份命名的。例如,其中一个目标包含如下命名的文件夹:2015 年 1 月 1 日、2015 年 2 月 -02 日、2015 年 3 月 -03 日等。我已经设法使删除过程正常工作,但是当需要复制时,我收到此错误:

xcopy 未被识别为内部或外部命令、可运行程序或批处理文件。

代码如下:

    echo off
    for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
    set "YYYY=%dt:~0,4%"
    set "MM=%dt:~4,2%"
    set "DD=%dt:~6,2%"
    set "HH=%dt:~8,2%"
    set "Min=%dt:~10,2%"
    set "Sec=%dt:~12,2%"
    set "YY=%dt:~2,2%"

    if %MM%==01 set Month=January
    if %MM%==02 set Month=February
    if %MM%==03 set Month=March
    if %MM%==04 set Month=April
    if %MM%==05 set Month=May
    if %MM%==06 set Month=June
    if %MM%==07 set Month=July
    if %MM%==08 set Month=August
    if %MM%==09 set Month=September
    if %MM%==10 set Month=October
    if %MM%==11 set Month=November
    if %MM%==12 set Month=December


    set path=-%MM% %Month% 20%YY%

    del /f/s/q "P:\WX\%path%\Today"

    xcopy "F:\WX\%path%\Today" . "P:\WX\%path%\Today" /s/e/y

【问题讨论】:

  • 你破坏了系统PATH变量!!!!!!我发誓这周每天都有同样的问题被问到。
  • 我更改了变量的名称,但仍然出现相同的错误。
  • 这就是为什么您还应该养成将 setlocal 放在批处理文件顶部的习惯。

标签: batch-file


【解决方案1】:

我相信是因为set path=-%MM% %Month% 20%YY%:

PATH 是一个环境变量,它包含您可能需要从随机位置开始的所有命令的位置,因此建议永远不要修改此变量。只需将其替换为path2,您将陷入另一个问题:-)

【讨论】:

  • 不要忘记退出您正在运行的环境:当您修改环境变量时,它会一直保持修改状态,直到您退出。我假设您正在控制台窗口中运行?然后首先退出该窗口并启动另一个。那么PATH 环境变量应该又可以了。
猜你喜欢
  • 2012-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-04
  • 2018-10-23
  • 1970-01-01
  • 2014-06-06
  • 1970-01-01
相关资源
最近更新 更多