該批處理文件從TEST發行到LIVE。我想在此文件中添加檢查約束,以確保特定文件夾中有相應的發行文檔。"C:\Program Files\Windows Resource Kits\Tools\robocopy.exe" "\\testserver\testapp$" "\\liveserver\liveapp$" *.* /E /XA:H /PURGE /XO /XD ".svn" /NDL /NC /NS /NPdel "\\liveserver\liveapp$\web.config"ren "\\liveserver\liveapp$\web.live.config" web.config所以我對如何實現這一目標有兩個疑問...version.txt文件\\testserver\testapp$夾中有一個文件,該文件的唯一內容是內部版本號(例如,對于45,對于內部版本45)如何將version.txt文件的內容讀入批處理文件中的變量中?如何\\fileserver\myapp\releasedocs\ {build}.doc使用第1部分中的變量代替{build} 檢查文件,是否存在?
3 回答

素胚勾勒不出你
TA貢獻1827條經驗 獲得超9個贊
將文件內容讀入變量:
for /f "delims=" %%x in (version.txt) do set Build=%%x
要么
set /p Build=<version.txt
兩者僅在文件中的單行中就具有相同的作用,對于更多行,for變體會將最后一行放入變量中,而set /p將使用第一行。
就像使用任何其他環境變量一樣,使用變量畢竟是一個:
%Build%
因此,檢查是否存在:
if exist \\fileserver\myapp\releasedocs\%Build%.doc ...
盡管很可能那里沒有UNC路徑?,F在無法測試,但請記住這一點。

臨摹微笑
TA貢獻1982條經驗 獲得超2個贊
您可以像這樣從文件中讀取多個變量:
for /f "delims== tokens=1,2" %%G in (param.txt) do set %%G=%%H
其中param.txt:
PARAM1=value1
PARAM2=value2
...

汪汪一只貓
TA貢獻1898條經驗 獲得超8個贊
要將文件的所有行都加載到變量中,需要延遲擴展,因此請執行以下操作:
SETLOCAL EnableDelayedExpansion
for /f "Tokens=* Delims=" %%x in (version.txt) do set Build=!Build!%%x
有一些特殊字符的問題,雖然特別;,%和!
- 3 回答
- 0 關注
- 1739 瀏覽
添加回答
舉報
0/150
提交
取消