在批处理文件中定义变量时,无法识别xcopy

问题描述 投票:0回答:2

我正在处理一个批处理文件,将一些文件从一个文件夹复制到另一个文件夹。 如果我在批处理上定义路径,则 xcopy 命令将不起作用。如果我不定义变量,xcopy 命令将正常工作。

示例 1,这不起作用:

@echo off
set pathA=C:\xx\kk
set pathB=C:\xx\mm
xcopy "%pathA%\*.doc" "%pathB%"

示例 2,这将起作用:

@echo off
xcopy "C:\xx\kk\*.doc" "C:\xx\mm"

我正在使用的路径非常长,因此我想将它们定义为变量,并避免每次使用它们时都编写它们。

你们知道为什么 xcopy 在示例 1 中不起作用吗?我该如何解决它?

谢谢!

batch-file set xcopy
2个回答
1
投票

问题出在设置变量时的反斜杠。我刚刚将变量设置为:

set pathA=C:\xx\kk\
 set pathB=C:\xx\mm\

并将 xcopy 称为:

xcopy "%pathA%*.doc" "%pathB%"  /S /E /Y

仍然不知道为什么,但现在效果很好!

再次感谢您的帮助!


0
投票

确保 set 命令末尾没有空格字符。 如果这样做,%pathA% 解析为“C:\xx\kk\ *.doc”,而不是“C:\xx\kk*.doc”

© www.soinside.com 2019 - 2024. All rights reserved.