我有一个包含ID的变量。这个ID我想写入一个文件,然后检索它以便进一步处理。之后可以将其他内容写入文件,因此我使用/P
仅检索第一行。
SET ID=%RANDOM%
ECHO %ID% >> my_file.txt
SET /P LINE=< my_file.txt
ECHO %ID%==%LINE%?
IF "%ID%" == "%LINE%" (
ECHO Equal!
) ELSE (
ECHO Not equal!
)
输出:
15770 == 15770?
不等于
我注意到问号前面的空白字符。我的想法是它是linefeed
,所以我将脚本扩展到:
SET ID=%RANDOM%
ECHO %ID% >> my_file.txt
SET /P LINE=< my_file.txt
REM Try to remove the linefeed.
SET LINE2=%LINE:~0,-1%
ECHO %ID%==%LINE2%?
IF "%ID%" == "%LINE2%" (
ECHO Equal!
) ELSE (
ECHO Not equal!
)
输出:
16332 == 16332?
不等于
我仍然会得到一个空白字符,但是从原始输入中删除两个字符,删除其中一个数字。
如何转换my_file.txt
中第一行的输入,以便获得一个可以与我写入文件的原始值进行比较的值?
答案 0 :(得分:2)
如果您使用此格式,则不需要尾随字符
并且在正常使用中不会有换行符:
>>my_file.txt ECHO %ID%
当你使用它时,在变量内容之后有一个空格,这通常被使用,因为在重定向字符之前像1这样的单个数字将无法回显数字。
ECHO %ID% >> my_file.txt
答案 1 :(得分:1)
您可以随时使用
set /a line=%line%
如果您确定所读取的数据是数字,则删除任何杂散空格(前导或尾随)。