Batch file 使用多个命令批处理for循环,并为初学者启用DelayedExpansion

Batch file 使用多个命令批处理for循环,并为初学者启用DelayedExpansion,batch-file,Batch File,我需要一些成批的noob治疗 我正在尝试重命名文件夹中的所有文件,我正在慢慢地完成,但是尽管我在谷歌的帮助下正确地完成了这一步,我想知道我在做什么 以下是我到目前为止的代码: @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循环中添加的任何其他内容都会产生奇

我需要一些成批的noob治疗

我正在尝试重命名文件夹中的所有文件,我正在慢慢地完成,但是尽管我在谷歌的帮助下正确地完成了这一步,我想知道我在做什么

以下是我到目前为止的代码:

@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循环中添加的任何其他内容都会产生奇怪的结果。我知道启用延迟扩展的
以某种方式连接起来并使其工作,但是for循环的内部与批处理中的普通命令有什么不同,因此需要特殊的语法

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

@ECHO OFF

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

设置i=%i:~1%
是错误的,因为
for
循环控制变量(例如
%i
)与环境变量(例如
%i%
%str%
)之间存在巨大差异,并且对它们进行适当的操作:

  • %~i
    %~1
    等特殊页面)
  • %变量:~num_chars_to_skip,num_chars_to_keep%
    等)
  • %变量:strofind=NewStr%
    等)
更多资源(必读,不完整):

  • (命令参考)
  • (其他特殊性)
  • (专页)

也许能帮上忙。你的链接看起来对我有用。我需要一些时间来通读并弄清楚。对不起,我没有看到问题,但标题不同/