运行cmd命令工作,但从批处理文件运行不

时间:2014-01-15 02:44:18

标签: windows batch-file cmd

我尝试使用for循环创建脚本以将文件移动到子文件夹。 一开始,我使用CMD然后将命令复制到.bat文件并运行它。 结果没有任何反应。 为什么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"
)

2 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分: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文件按预期工作。