Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 通过bat中的一个目录循环,使用bat文件进入一个目录_Windows_Batch File - Fatal编程技术网

Windows 通过bat中的一个目录循环,使用bat文件进入一个目录

Windows 通过bat中的一个目录循环,使用bat文件进入一个目录,windows,batch-file,Windows,Batch File,我有一个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循环中的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循环中的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

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

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


对于(..\*.%test%)中的/d%%x,请执行xcopy“%%x”c:\path\%test%%\%~nxx\/S/E/F
它可以。但是
%%x
将包含
。\xyz.test
,而不是
xyz.test
,这可能不是您在xcopy目标中想要的

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


对于/d%%x in(..\*.%test%)是否复制“%%x”c:\path\%test%\%%~nxx\/S/E/F

您能键入行吗?我不知道在哪里改成%%~nxxDid您用的是双百分号吗?你把它放在xcopy的目标部分了吗?可能使用大写变量,因为小写的x可能与~x标识符冲突。当然,您只希望在最后一部分中使用它!不是所有的地方。编辑第2条,我想在这里发布一些东西,但是不起作用。你能把行打出来吗?我不知道在哪里改成%%~nxxDid您用的是双百分号吗?你把它放在xcopy的目标部分了吗?可能使用大写变量,因为小写的x可能与~x标识符冲突。当然,您只希望在最后一部分中使用它!不是所有的地方。编辑第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