2014-01-15 71 views
2

我尝试使用for循环将文件移动到子文件夹创建脚本。 在开始时,我与CMD一起工作,然后我复制命令到.bat文件并运行它。 结果没有任何反应。 为什么CMD上的同一个命令可以正常工作,但是从文件不能运行?运行cmd命令工作,但从批处理文件运行不

这是我的命令。

@echo off 
setlocal enableDelayedExpansion 
SET FOL=J:\test 
SET ENDNUM=2 

for /l %x in (1, 1, %ENDNUM%) do (
md "%FOL%/0%x/subfolder" 
move /Y "%FOL%\0%x\*" "%FOL%\0%x\subfolder" 
) 
+0

你已经混合了'/'和\ too。 – foxidrive

回答

7

您必须在批处理文件中将for命令的百分号加倍。

for /l %%x in (1, 1, %ENDNUM%) do (
    md "%FOL%/0%%x/subfolder" 
    move /Y "%FOL%\0%%x\*" "%FOL%\0%%x\subfolder" 
) 
0

检查您的.bat文件的编码。当我使用UTF-8时,命令提示符显示错误:

C:\Users\***\Desktop>´╗┐cmd 
'´╗┐cmd' is not recognized as an internal or external command, 
operable program or batch file. 

当我使用ANSI编码时,.bat文件按预期工作。