这段bat批处理什么意思,求详细解释

setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir/b') do (
set fn=%%i
set fn=!fn: =!
ren "%%i" !fn!
)
详细解释

概括来说:
将当前目录下的文件和文件夹名字中的空格去掉。

详细:   
 setlocal enabledelayedexpansion
开启延迟变量

for /f "tokens=*" %%i in ('dir/b') do (
将当前目录下的文件和文件夹依次赋予给%%i

 set fn=%%i
将%%i赋予给fn,fn变成取到的%%i

set fn=!fn: =!
去掉fn中的空格,!!符号是和开头的setlocal对应的

 ren "%%i" !fn!   
 将%%i重新命名为去掉空格后的fn

追问

tokens=* 是去左边空格的么?
fn=!fn: =! 是怎么去空格的呀

追答tokens=* 是去左边空格的么?
是的
 fn=!fn: =!  是怎么去空格的呀
 使用替换,将空格替换无
具体的你可以在百度查询set的用法

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-15
为当前文件执行删除文件名的空格处理追问

代码看不懂,有点不理解,可以详细解释一下么,谢了!

相似回答