私は、ほとんど機能する非常に単純な Windows スクリプトを作成しようとしています(「ほぼ」ここに私の存在を説明しています...)。いくつかのコマンドを連鎖させたいと思っていました。それらの 1 つは、レジストリ キーを追加するためのものです。次のコマンドでトリックを行う方法を見つけました:
REG ADD "HKCU\Software\Microsoft\Office\12.0\Common\DRM" /v "AdminTemplatePath" /t REG_EXPAND_SZ /d ^%LocalAppData^%\Microsoft\DRM\Templates /f
「 %LocalAppData%\Microsoft\DRM\Templates 」という値を持つ「 AdminTemplatePath 」という名前のキーを追加したいと考えています。
問題は環境変数%LocalAppData%に関するものです。を実行すると、コマンドラインを機能させるには、各「% 」の前に「 ^REG ADD /?
」を付ける必要があると表示されます (「 ^」がないと、変数は解釈され、その絶対値に置き換えられます)。
プロンプトに完全なコマンドを入力すると、すべて正常に動作します。値フィールドに「%LocalAppData%\Microsoft\DRM\Templates」があります。このコマンドをコピーしてバッチ ファイルに貼り付けても、実行時に問題はありません。システムは、すべて問題ないと言っています。しかし実際には、値は " ^\Microsoft\DRM\Templates " または " \Microsoft\DRM\Templates " です。
完全なコマンドで「 ^ 」を削除して再試行すると、値は「 C:\Users\My User\AppData\Local\Microsoft\DRM\Templates」になります。
環境変数をそのままにして、バッチファイルを実行するコツを知っている人はいますか?
ありがとうございました。