具有多个命令的循环批处理和为初学者

时间:2015-08-31 19:32:47

标签: batch-file

我需要一些批处理 - noob-treatment。

我正在尝试重命名文件夹中的所有文件并且我正慢慢地到达那里,但是虽然我在谷歌的帮助下迈出了一步,但我想知道我在做什么。

以下是我的代码:

@ECHO OFF
setlocal enabledelayedexpansion

set a="dir /b"
FOR /F "delims=" %%i IN (' %a% ') DO (
set str=%%i
set str=!str:~1!
echo !str!
)

我放在for循环中的任何其他内容都会带来奇怪的结果。我知道enabledelayedexpansion!以某种方式连接并使其工作,但for循环的内部如何与批处理中的普通命令不同,因此需要特殊的语法?

如果我输入这样的代码会出现什么问题:

@ECHO OFF

set a="dir /b"
FOR /F "delims=" %%i IN (' %a% ') DO (
set i=%i:~1%
echo %%i
)

1 个答案:

答案 0 :(得分:1)

set i=%i:~1%错误,因为for循环控制变量(例如%i)与巨大的差异>环境变量(例如%i%%str%)以及对它们的适当操纵:

更多资源(必读,不完整):