我有一个自动生成的ini文件。
它的第二行总是:
Version = W.XX.Y.ZZ
W
是主要版本号,XX
是次要版本,Y
是构建版本,ZZ
是修订版。
我需要打开该ini文件并使用批处理文件编辑该行,以便删除该版本中的构建和修订号。因此,该行应该像这样结束:
Version = W.XX
主要号码将始终为一个字符,次要号码将始终为两个,因此整个字符串长度为14个字符(包含空格)。
我希望我能获得该行的LEFT
个字符的14个字符串,并用该字符串替换该行。
答案 0 :(得分:6)
您要求的“LEFT”语法是使用变量子字符串扩展:%var:~,14%
以下代码将在包含字符串“Version”
的每一行上执行“LEFT 14”setlocal enabledelayedexpansion
del output.ini
for /f "tokens=*" %%a in (input.ini) do (
set var=%%a
if not {!var!}=={!var:Version=!} set var=!var:~,14!
echo.!var! >> output.ini
)
endlocal
如果其他行包含“Version”字样,您还可以修改循环以使用计数器。
setlocal enabledelayedexpansion
del output.ini
set counter=0
for /f "tokens=*" %%a in (input.ini) do (
set var=%%a
set /a counter=!counter!+1
if !counter! EQU 2 set var=!var:~,14!
echo.!var! >> output.ini
)
endlocal
请注意,在这两种情况下,如果您的文件包含特殊符号,例如|,<或>
,则可能需要做更多工作