我正在创建一个将在服务器上运行的 GPO。在批处理中,我设置了SourcePath=%~0\..
一个可以很好地工作的变量,以允许我从与批处理本身运行的位置相同的位置访问文件。
%sourcepath%\Sigcheck\sigcheck.exe /accepteula -q -n "c:\path\file.exe" >fileversion
set /p filever= < fileversion
此代码可以很好地检查file.exe
将其放入fileversion
.
fileversion
然后读入变量filever
.
所以这段代码做了我想做的一切,但有一个问题。fileversion
在 GPO 文件夹 ( %sourcepath%
)中创建了一个名为的文件。这没关系,除非多个服务器同时执行批处理,它们都将尝试同时创建此文件并可能覆盖文件或导致错误。一旦值被读入变量filever
,就不再需要它,但删除它是不够的,因为两个系统应该能够同时执行脚本。
是否有另一种方法可以将值捕获到不会出现此问题的变量中?我考虑过在前面放置一条本地路径,fileversion
以便将其存储在本地,但我不喜欢这个选项。