0

我一直在試圖建立一個非常簡單的Windows腳本幾乎作品(「差不多」這裏解釋了我的存在......)。我想鏈接幾個命令。其中之一是添加註冊表項。 我發現怎麼做的伎倆用下面的命令:相同的命令,不同的結果(命令行或批處理)

REG ADD "HKCU\Software\Microsoft\Office\12.0\Common\DRM" /v "AdminTemplatePath" /t REG_EXPAND_SZ /d ^%LocalAppData^%\Microsoft\DRM\Templates /f 

我想添加一個名爲key「AdminTemplatePath」,它的值爲「%LOCALAPPDATA%\微軟\ DRM \模板 」。

問題是關於環境變量%LOCALAPPDATA%。當我做REG ADD /?,它說我有每個「」在命令行工作前把「^」(沒有「^」,變量會被解釋和它的絕對值代替) 。

當我在提示中鍵入完整的命令時,一切工作正常。我在值域「%LocalAppData%\ Microsoft \ DRM \ Templates」。當我在批處理文件中複製/粘貼此命令時,運行時沒有問題。系統告訴我一切正常。但實際上,該值爲「^\ Microsoft \ DRM \ Templates」或「\ Microsoft \ DRM \ Templates」。

當我刪除了 「^」 在完整的命令,然後再試一次,值爲 「C:\用戶\我的用戶\應用程序數據\本地\微軟\ DRM \模板」。

有沒有人知道保持環境變量的原理,運行批處理文件?

謝謝。

回答

1

^被認爲是批處理腳本中的轉義字符,但我也一直有它的麻煩。

相反,嘗試雙比例,雙引號括起來:

^%LocalAppData^%\Microsoft\DRM\Templates 

應該

"%%LocalAppData%%\Microsoft\DRM\Templates" 

退房http://www.robvanderwoude.com/escapechars.php有關轉義字符的更多信息批處理腳本

+0

謝謝。問題解決了。也感謝資源網站:) – Jon