簡體   English   中英

echo變量在批處理文件中不起作用

[英]echo variable is not working in batch file

我的批處理文件執行在echo echo%outfvar%處引發錯誤。 以下是我編寫的批處理文件:

setlocal ENABLEDELAYEDEXPANSION
set /a incvar = 1
set outfvar = "outfile"_!incvar!".res"
echo !outfvar!
echo *.txt > !outfvar!
set /a incvar = incvar+1

FOR %%pat in (%*) do(
    FOR /F %%k in (!outfvar!) DO( grep -l !pat! !k! >>outfile_!incvar!.res)
    set /a incvar = incvar+1
    set outfvar = "outfile"_!incvar!.res
                     )

錯誤是“此時%pat出乎意料。。”有人可以幫助我成功執行此批處理文件嗎?

刪除所有 set =周圍的空格。

do(for的行中)之間必須有一個空格。

set outfvar = "outfile"_%incvar%".res"

應該讀

set "outfvar=outfile_%incvar%.res"

(您所說的引號是字符串值的一部分。)

for變量, 必須僅包含一個字母,並且需要在%%之前加上擴展名。 您正在嘗試在代碼中使用%%pat ,這將不起作用。 請改為使用%%p (也for )。

最后,您需要延遲擴展才能讀取您在同一(復合)命令(代碼中的for )中修改的變量。 請參閱這篇文章以了解其工作原理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM