任何时候我使用批处理编辑文本信号行(实际上它只是一个更改的字符)文件变得更大。如果文本的数量再次与一个字符相同,则不应该这样做。
我正在尝试做的是启动一个程序(一个名为blueMSX的模拟器)并让它根据我输入的内容更改设置。因为开发人员我觉得不觉得有必要放入超越基础的强大命令行功能我必须通过更改config ini中的一行来实现。
虽然它确实有效,但正在增加额外的数据。这不仅意味着文件每次被蝙蝠使用时都会变得越来越大,但更糟糕的是模拟器,我猜也不喜欢它,只是在旧的后面添加了全新的设置。并且在任何人都不要求额外的数据不是新设置之前我已经测试了这个而没有启动程序而只是更改文本。这是有问题的代码
@echo off
:again
set alright=n
echo Enter 5 for 50hz or 6 for 60hz
set /p strUserInput=50hz or 60hz:
if %strUserInput%==5 (
set alright=y
)
if %strUserInput%==6 (
set alright=y
)
if %alright%==n goto again
setlocal EnableDelayedExpansion
break > "%CD%\blueMSXv282full\bluemsxTemp.ini"
set strLineToChange=emulation.vdpSyncMode^=
for /f "usebackq tokens=* delims=~" %%a in ("%CD%\blueMSXv282full\bluemsx.ini") do (
set strLine=%%a
IF "!strLine:~0,22!"=="%strLineToChange%" (
echo %strLineToChange%%strUserInput%0Hz >> "%CD%\blueMSXv282full\bluemsxTemp.ini"
) ELSE (
echo %%a >> "%CD%\blueMSXv282full\bluemsxTemp.ini"
)
)
del "%CD%\blueMSXv282full\bluemsx.ini"
rename "%CD%\blueMSXv282full\bluemsxTemp.ini" "bluemsx.ini"
start /D "%CD%\blueMSXv282full\" "blueMSX.exe" "%CD%\blueMSXv282full\blueMSX.exe" -rom1 "%~1"
如果我用记事本手动编辑它还可以正常工作
答案 0 :(得分:1)
echo %strLineToChange%%strUserInput%0Hz >> "%CD%\blueMSXv282full\bluemsxTemp.ini"
) ELSE (
echo %%a >> "%CD%\blueMSXv282full\bluemsxTemp.ini"
>>
之前的空格将输出到文件,尝试
echo %strLineToChange%%strUserInput%0Hz>> "%CD%\blueMSXv282full\bluemsxTemp.ini"
) ELSE (
echo %%a>> "%CD%\blueMSXv282full\bluemsxTemp.ini"