[英]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.