我正在創建一個將在服務器上運行的GPO。 在批處理中,我設置了變量SourcePath=%~0\..
,該變量很好地允許我從批處理本身運行的位置訪問文件。將值存儲在批處理文件中的問題
%sourcepath%\Sigcheck\sigcheck.exe /accepteula -q -n "c:\path\file.exe" >fileversion
set /p filever= < fileversion
此代碼工作得很好,以檢查文件file.exe
把它變成fileversion
的版本。 fileversion
然後被讀入變量filever
。
所以這段代碼做了我希望它做的一切,但有一個問題。在GPO文件夾(%sourcepath%
)中創建一個名爲fileversion
的文件。除非多臺服務器同時執行批處理,否則它們都會好起來,但它們都將嘗試同時創建該文件,並且可能會覆蓋該文件或導致錯誤。一旦將該值讀入變量filever
中,就不再需要該值,但將其刪除是不夠的,因爲兩個系統應該能夠同時執行腳本。
是否有另一種方法將值捕獲到一個不會有這個問題的變量?我想在fileversion
之前放置一個本地路徑,所以它存儲在本地,但我不喜歡這個選項。