如何阻止批处理文件将额外的行回显到文件中?
How to stop batch file from echoing extra line into file?
我有以下代码通过将变量回显到文件中来读取变量的长度,而不是读取文件长度:
echo %scor% > scorfile.txt
FOR %%? IN (scorfile.txt) DO ( SET /A scorlength=%%~z? - 2 )
if %scorlength%==12 set /a scorlength=1
del /Q scorfile.txt
echo %scorlength%
pause
它认为变量是一个额外的字符长,当我打开 scorfile.txt 时,有一个额外的行,我相信这就是导致问题的原因。我该如何解决?谢谢!
我相信这就是您要找的:
echo | set /p="%scor%" > scorfile.txt
FOR %%? IN (scorfile.txt) DO ( SET /A scorlength=%%~z? )
if %scorlength%==12 set /a scorlength=1
del /Q scorfile.txt
echo %scorlength%
pause
修改了第一行和第二行。第一次修改从输出中删除了换行符,第二次修改删除了你所拥有的等式的 - 2
部分,因为我假设你最初使用它是为了尝试补偿换行符计数问题。
希望这能解决您的问题!
我有以下代码通过将变量回显到文件中来读取变量的长度,而不是读取文件长度:
echo %scor% > scorfile.txt
FOR %%? IN (scorfile.txt) DO ( SET /A scorlength=%%~z? - 2 )
if %scorlength%==12 set /a scorlength=1
del /Q scorfile.txt
echo %scorlength%
pause
它认为变量是一个额外的字符长,当我打开 scorfile.txt 时,有一个额外的行,我相信这就是导致问题的原因。我该如何解决?谢谢!
我相信这就是您要找的:
echo | set /p="%scor%" > scorfile.txt
FOR %%? IN (scorfile.txt) DO ( SET /A scorlength=%%~z? )
if %scorlength%==12 set /a scorlength=1
del /Q scorfile.txt
echo %scorlength%
pause
修改了第一行和第二行。第一次修改从输出中删除了换行符,第二次修改删除了你所拥有的等式的 - 2
部分,因为我假设你最初使用它是为了尝试补偿换行符计数问题。
希望这能解决您的问题!