【发布时间】:2015-03-29 19:49:46
【问题描述】:
基本上,你如何把它变成一个高效的 for 循环?我需要在文件夹的文件名中插入一个空格,最好是子文件夹;在它之后的任何数字和任何字母之间,而不是在它之前,只留下文件名中的所有其他内容,包括可见的文件扩展名。数字并不总是在同一个令牌上。这将从 A-Z 开始。
:trim-r
@echo off
setlocal enabledelayedexpansion
CD %workdir%
PUSHD "%workdir%"
for /r %workdir% %%j in (*.*) do (
set filename=%%~nj
set filename=!filename:0a=0 a!
set filename=!filename:1a=1 a!
set filename=!filename:2a=2 a!
set filename=!filename:3a=3 a!
set filename=!filename:4a=4 a!
set filename=!filename:5a=5 a!
set filename=!filename:6a=6 a!
set filename=!filename:7a=7 a!
set filename=!filename:8a=8 a!
set filename=!filename:9a=9 a!
set filename=!filename:0b=0 b!
set filename=!filename:1b=1 b!
set filename=!filename:2b=2 b!
set filename=!filename:3b=3 b!
set filename=!filename:4b=4 b!
set filename=!filename:5b=5 b!
set filename=!filename:6b=6 b!
set filename=!filename:7b=7 b!
set filename=!filename:8b=8 b!
set filename=!filename:9b=9 b!
set filename=!filename:0c=0 c!
set filename=!filename:1c=1 c!
set filename=!filename:2c=2 c!
set filename=!filename:3c=3 c!
set filename=!filename:4c=4 c!
set filename=!filename:5c=5 c!
set filename=!filename:6c=6 c!
set filename=!filename:7c=7 c!
set filename=!filename:8c=8 c!
set filename=!filename:9c=9 c!
if not "!filename!"=="%%~nj" ren "%%j" "!filename!%%~xj"
)
endlocal
popd
EXIT /B
【问题讨论】:
-
在没有路径的情况下完成
pushd "%workdir%". You can simply use/r`之后就不需要使用/r %workdir%了。 -
请注意,谢谢 dbenham
标签: batch-file for-loop rename