簡體   English   中英

批處理文件中的變量

[英]Variable in variable in batch file

對於學校,我需要編寫一些腳本來執行一些軟件(SCIA 工程師)。 現在我已經用 python 編寫了 3 個腳本,它們創建了大量的 xml 文件。 這些文件是軟件(SCIA 工程師)的輸入。 在此過程中,文件的路徑(包括它們的名稱)將保存到一個 txt 文件中。 我想使用帶有名稱的 txt 文件來執行軟件 (SCIA) 並計算所有創建的 xml 文件。 目前,我可以通過更改批處理文件中文件的路徑來執行程序並一個一個地計算文件。 但目標是使其自動化,以便所有文件都使用一個批處理文件進行計算。

我找到了一個小腳本來讀取 txt 文件並將每一行保存到不同的變量。

set count=0
for /f "tokens=*" %%x in (LijstBestanden.txt) do (
    set /a count+=1
    set var[!count!]=%%x
    echo.Count--!count!--
)

我知道代碼將 txt 文件的第一行保存為 var 1 現在我想使用 while 循環,但我發現這是不可能的,可以通過使用 if 語句並使用 goto 跳回到 if 之前來完成。 所以我試着這樣做。

:while
set i=0
if i leq count (
    set /a i+=1
    @SET INPUTXML=%var[i]%
    @SET OUTPUTXML=%var[i]~0,-4%Results.xml

    @Call :Calculate LIN FIle1 %INPUTXML% %OUTPUTXML%
    goto :while
)

所以我嘗試計算每個文件,但我遇到的第一個問題是 %var[i]% 不正確。 我嘗試使用輸入文件的路徑並將其更改為將其用作帶有 %var[i]~0,-4%Results.xml 的 output 文件的路徑。 我只是嘗試刪除“.xml”並在末尾插入“Results.xml”。 我不知道這是否是正確的方法。

誰能幫我解決這個問題,尤其是 %var[i]% 的問題,因為我不知道如何讓它工作。 我的代碼中可能還有其他錯誤,抱歉,我不是編碼專家。

對答案的回應:如 cmd 中所示,參數 3 工作正常,它是 INPUTXML,但參數 4 不顯示路徑,僅顯示 Results.xml。 有辦法解決這個問題嗎? 在此輸入圖片描述提前致謝,Niels

for /L %%i in (1,1,%count%) do (
    @SET INPUTXML=!var[%%i]!
    @SET OUTPUTXML=!var[%%i]:~0,-4!Results.xml

    @Call :Calculate LIN FIle1 !INPUTXML! !OUTPUTXML!
)

您需要變量var內容,但需要使用delayedexpansion

Stephan 的 DELAYEDEXPANSION 鏈接

請注意,在批處理開始時執行@echo off會使每個@都變得不必要。 @echo off關閉命令回顯。 @thiscommandline關閉此命令行的回顯。

暫無
暫無

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

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