我需要构建一个.bat文件来处理一个特定的.csv,这是一个小问题。 我希望.bat读取文件的行,然后检查该行的前三个字母。最后应该有n个文件,其中文件xxx.csv包含input.csv的行,其中xxx是该行的前三个字母。
首先,我什至不知道是否有可能在批处理文件中完成此工作,因为该文件有> 85000行,甚至可能更大。因此,如果不可能的话,您可以直接告诉我。
for /f "delims=" %%a in (input.CSV) DO (
echo %%~a:~0,3
pause
)
我要“输出” %% a的前三个字母。
如果您能帮助我,那就太好了。
菲尔
答案 0 :(得分:0)
子字符串替换仅适用于环境变量(%var%
),而不适用于元变量(%%a
)(如Mofi早已提到的那样)。并且由于您是在同一命令块中设置和使用变量,因此需要delayed expansion:
setlocal enabledelayedexpansion
for /f "delims=" %%a in (input.CSV) DO (
set "var=%%~a"
echo !var:~0,3!
pause
)
(有些方法没有延迟扩展,但是它们使用call
,这会使事情变慢)