【发布时间】:2016-12-12 11:01:34
【问题描述】:
我正在尝试构建一个批处理文件。
我在一个文件夹中有 30 个 csv 文件
我的目的是
- 获取每个文件名(例如097_021216_192332.csv)
- 提取前 3 位数字
- 将其与我标记了另一个字符串的查找表 (lookup1.bat) 进行比较
EG:lookup1.bat
@echo 107=B_05-
@echo 097=B_06-
@echo 149=B_07-
@echo 109=B_08-
@echo 101=B_09-
@echo 105=B_10-
@echo 098=B_11-
所以在这里我会得到“B_06-”
- 使用此“B_06-”前缀修改文件名并重命名文件
这是我的代码,我只有关于循环的基本想法,而且我很挣扎。感谢您的帮助。
@echo on
setlocal enabledelayedexpansion
for %%a in ("*.csv") do (
set FileName=%%~na
goto:stepa
goto:eof
)
:stepa
for /f "tokens=1 delims=_" %%a in ("%FileName%") do (
set A=%%a
echo %A%
)
@SET MN=%A%
@FOR /F "tokens=1,2 delims==" %%i IN ('lookup1.bat') DO @IF %%i EQU %MN% SET MW=%%j
@ECHO The board number corresponding to %MN% is %MW%.
set "str=%MW%%FileName%"
echo "%str%"
Ren "!FileName!" "!str!"
:eof
【问题讨论】:
标签: csv batch-file for-loop nested