2016-07-15 112 views
1

目录我有一个bat文件看起来像的哪个部分:循环通过目录中的蝙蝠,往上用bat文件

set test=test 
for /d %%x in (..\*.%test%) do xcopy "%%x" c:\path\%test%\%%x\ /S /E /F 
xcopy ..\dir c:\path\%test%\dir\ /S /E /F 

for循环不工作,而是XCOPY一样。如果我将上面的目录的内容移动到当前目录并更改代码以删除“.. \”:

for /d %%x in (*.%test%) do xcopy "%%x" c:\path\%test%\%%x\ /S /E /F 

它的工作原理。有人可以告诉我为什么for循环中的bat脚本无法查找目录吗?我接近这个错误吗?

编辑:我现在已经改变了命令看到的部份答案后,但它仍然不能正常工作:

for /d %%~nxx in (..\*.%MUI%) do xcopy "%%~nxx" c:\temp\%test%\%%~nxx\ /S /E /F 

我收到的错误:

%~nxx was unexpected at this time 

编辑#2: 我仍然无法工作,我的命令看起来像

for /d %%x in (..\*.%test%) do xcopy "%%~nxx" c:\temp\%test%\%%~nxx\ /S /E /F 

for /d %%x in (..\*.%test%) do xcopy "%%x" c:\temp\%test%\%%~nxx\ /S /E /F 

回答

0

它可以。但%%x将包含..\xyz.test,而不是xyz.test,这可能不是您想要在您的xcopy目标中。

将其替换为%%~nxx(用于“名称和x的扩展”)以切断路径。

for /d %%x in (..\*.%test%) do xcopy "%%x" c:\path\%test%\%%~nxx\ /S /E /F

+0

你可以输入行吗?我很困惑,在哪里改变%%〜nxx – user2455869

+0

你使用双重百分号吗?你把它放在xcopy目标部分吗?也许使用大写变量,因为小写字母x可能与〜x标识符冲突。 – ths

+0

我收录了一个显示我已经完成的编辑 – user2455869