错误"" tmp.txt"在这个时候是出乎意料的"

时间:2014-08-19 15:26:22

标签: loops variables batch-file

我仍然是批处理的新手,我正在遇到这个我似乎无法解决的问题。当我运行我的脚本时,它返回" 6766.txt"在这个时候出乎意料。我的脚本应该搜索" store_versions"在一个名为Local State的文件中。如果它找到该行,它将被附加到Temp文件,然后在循环中修剪该行,以便我只获得find命令输出的特定部分。该命令的输出是 [319]" store_versions":{。而我想要的只是319.有谁知道造成这个问题的原因是什么? 谢谢,

    @echo off 
    setlocal enableextensions enabledelayedexpansion
    set tempfile="%random%.txt" 
    set LineNumFin=%LineNumFin%
    pause 
    Find /N "store_versions" < "Local State" > %tempfile% 

    for /f "tokens=1 delims=[]" %%a in %tempfile% do ( set LineNum=%%a

    pause
    )

    del "%tempfile%"
    echo Line Num: %LineNum%

    set /a result=%LineNum%+4

    echo %result%

1 个答案:

答案 0 :(得分:1)

in命令的for子句需要括号

for /f "... options ..." %%a in ( file ) do ....
                                ^      ^
                                ^ here ^

并且,当您在文件名中包含引号时,您需要在usebackq命令的options部分中包含for

或者,您可以避免使用临时文件

for /f "tokens=1 delims=[]" %%a in (
    ' find /n "store_versions" ^< "Local State" '
) do set "lineNum=%%a"

for命令将执行命令,对记录进行标记并检索值。