2017-05-18 20 views
0

我想將當前設置爲壁紙的圖像複製到另一個位置。我可以看到使用: REG QUERY "HKCU\Software\Microsoft\Internet Explorer\Desktop\General" /v WallpaperSource爲我提供了圖像位置的信息,但是如何管這個並使用此位置?如何在cmd中使用當前壁紙的位置

我試過set %foo=REG QUERY "HKCU\Software\Microsoft\Internet Explorer\Desktop\General" /v WallpaperSource將其保存爲變量。我不明白我在做什麼錯了(我是批處理新手,非常習慣於unix)。

我可以看到他們是如何遍歷輸出字符串here的部分,雖然我得到%%A was unexpected at this time.爲:

FOR /F "usebackq skip=2 tokens=1-3" %%A IN (`REG QUERY "HKCU\Software\Microsoft\Internet Explorer\Desktop\General" /v WallpaperSource`) Do (@echo %%A : %%C)` 

一般是好多了,如果我能以某種方式管這個,所以我不會有需要使用變量。我該怎麼做呢?

+3

可能的重複[如何從批處理腳本中獲取註冊表項的值?](http://stackoverflow.com/questions/445167/how-can-i-get-the-value-of -a-registry-key-from-a-batch-script) –

+0

你的'set%foo = REG ...'是批處理(但在powershell中)不可能的bash構造。在批處理文件中使用'for/f'時確定 - 在cmdline上,變量只能使用一個百分號。你想要輸出結果的命令是什麼? – LotPings

回答

0

下面的命令行從註冊表和管道它的數據擷取到Find命令:

For /F "EOL=H Tokens=2*" %A In ('REG QUERY "HKCU\Software\Microsoft\Internet Explorer\Desktop\General" /v WallpaperSource') Do @Echo %~B|Find ":" 

只要改變Find命令,無論你打算管的路徑。另外請注意,數據%~B可能包含空格,因此可能會謹慎使用,具體取決於您將其管理的任何要求,以雙引號括起來。