每次我打開批處理檔案時,我都希望它讀取當前存盤在文本檔案中的資訊,然后應用它提取的存盤資訊來計算一個新的整數。
我試圖弄清楚如何從文本檔案中復制一個數字,存盤為一個變數,然后在該文本檔案中更新為一個新的整數,比如將值加 1。我一直在網上篩選資訊,一切似乎都指向了不同的方向。
這是迄今為止我從挖掘中獲得的測驗代碼:
set file="Test.txt"
set /a _Counter =< %file%
echo:%_Counter%
set /a "_Update=%_Counter% 1"
echo:%_Update% >%file%
timeout /t 10
出于某種原因,當我嘗試獲取計數器的資訊時,它不會從文本檔案中提取任何資料,并且我只剩下批處理檔案輸出的這一行。
F:\Users\Test\Documents\JumbledDirectory> set /a _Counter = Directory\Test.txt 0<F:\Users\Test\Documents\Jumbled
我見過的最常見的答案是使用類似的東西
set /p _Counter=< Test.txt
echo %_Counter%
如此處所示:Windows 批處理命令從文本檔案中讀取第一行
但是在這樣做之后,我要么結束了
echo:%_Counter%
完全空白,或者每次默認為0。
任何幫助將不勝感激,因為我很遺憾地一直在尋找如何獲得這個簡單的功能大約 6 個小時。
uj5u.com熱心網友回復:
@ECHO Off
SETLOCAL
set "file=q72474185.txt"
set /p _Counter=< "%file%"
echo:%_Counter%
set /a _Update=_Counter 1
echo:%_Update% >"%file%"
TYPE "%file%"
GOTO :EOF
當您使用點擊和傻笑方法執行批處理時,如果發現語法錯誤或腳本運行完成,批處理視窗將關閉。您可以在錯誤上放置一個pauseafter 陳述句和 home,但最好打開一個“命令提示符”并從那里運行您的批處理,以便視窗保持打開狀態并顯示任何(錯誤)訊息。
錯誤訊息是關于缺少運算元的。
當我用自己的資料集跟蹤我回答的每個問題時,我已經更改了檔案名。
用于set "var=value"設定字串值 - 這可以避免尾隨空格引起的問題。不要分配終端\,空格或"- 從元素構建路徑名 - 違反直覺,這可能會使程序更容易。
set /a不期望來自任何地方的輸入,它只是執行計算并分配結果。引號不是必需的,因此我已將其洗掉。%在 a 中也不需要,set /a但如果您使用delayedexpansion.
set /p需要輸入,所以我用它來讀取檔案。請注意,set /a忽略空格,但會在分配的變數名中包含空格,并且set&是不同的變數。set /p=_Counter _Counter
uj5u.com熱心網友回復:
因此,將批處理與文本檔案放在同一目錄中,這將起作用:
REM get input of file as Counter
set /p Counter=<number.txt
REM add a number to Counter and assign it as Counter
set /a "Counter=%Counter% 3
REM empty the file
break>number.txt
REM write Counter in the file
echo %Counter% >> number.txt
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/485734.html
