是否可以直接從另一個進程的輸出(即通過STDIN的管道)導入註冊表項?Windows腳本:註冊表從Pipe/STDIN導入?
我有一個.reg文件,我想導入一些註冊表項,但只有在做了一些即時修改(填充佔位符值像用戶名等)後。我打算使用How can you find and replace text in a file using the Windows command-line environment?中的方法來進行修改,但現在我需要弄清楚如何將修改後的版本加入到註冊表中。
(gc foo.reg) -creplace '^"UserName"=""$', "`"UserName`"=`"$env:USERNAME`"" | | ...
我一直在尋找文件REG IMPORT
,它需要一個文件名作爲參數。在我有更多經驗的Unix shell腳本中,有很多方法可以解決這個問題。如果我們想象這需要一個文件名的命令的Unix版,一些可能的解決辦法是
sed 's/bar/baz/' foo.reg|reg -i
或
sed 's/bar/baz/' foo.reg|reg -i -
或
sed 's/bar/baz/' foo.reg|reg -i /dev/stdin
甚至
reg -i <(sed 's/bar/baz/' foo.reg)
(只有前兩個是完全正常的。)
是否有與Windows相當的功能?
請注意,如果這有所幫助,我可以使用CMD或PowerShell風格的腳本解決方案。
幾個備選方案:我相當肯定,你可以直接從PowerShell中修改註冊表;或者你可以使用'reg add'。 –