サーバー上で実行される 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%)。複数のサーバーが同時にバッチを実行している場合を除いて、これは問題ありません。すべてのサーバーが同時にこのファイルを作成しようとし、ファイルを上書きしたり、エラーを引き起こしたりする可能性があります。値が variable に読み込まれるfileverと不要になりますが、2 つのシステムが同時にスクリプトを実行できる必要があるため、値を削除するだけでは十分ではありません。
この問題が発生しない変数に値をキャプチャする別の方法はありますか? ローカルパスを前に置いてローカルにfileversion保存することを考えましたが、このオプションには熱心ではありません。