2013-03-17 80 views
0

我有一個非常簡單的問題:如何在批處理註冊表中存儲簡單變量?

我想在註冊表中存儲兩個用戶輸入的變量字符串,並且在批處理再次運行時能夠訪問它。我一直在Google上搜索,似乎無法找到答案。

它可以存儲在任何註冊表中,只要它在下次執行時可用即可。

這裏是需要採取什麼流量:

:: Check if variable_a/b is available in reg, else ask user....? 
SET /p variable_a="Enter a string: " 
SET /p variable_b="Enter a string: " 

:: Store both vars somehow....? 

echo My variables: 
echo variable_a 
echo variable_b 

能否請你幫我解決這個簡單的問題?

回答

2
setx variable_a "%variable_a%" 
setx variable_b "%variable_b%" 

將簡單地存儲變量 - 這樣任何未來的CMD.EXE調用將在同一個會話中將變量/值加載到環境中。

添加/m保存到下一次和未來的登錄(S)(未保存此登錄會話)

setx variable_a "" 

刪除 - 同樣的規則。

+0

所以,如果我想將它保存爲本屆會議和明年登錄我將不得不使用'SETX variable_a「%variable_a %「''和'setx variable_a」%variable_a%「\ m'直接在對方後面? – LouwHopley 2013-03-17 13:34:07

+0

是的 - 除了'/ m'沒有'\ m' – Magoo 2013-03-17 13:36:32

+0

哦,你能指出我可以檢查它是否存在嗎? – LouwHopley 2013-03-17 13:37:23

0

basetx在所有windows版本中都不可用。

而且,我寧願存儲變量在一個文件中,而不是在註冊表

if not exist somepath\myvar.bat (
SET /p varA="Enter a string: " 
SET /p varB="Enter b string: " 
echo REM this is my permanent store >somepath\myvar.bat 
echo set variable_a=%varA% >> somepath\myvar.bat 
echo set variable_b=%varB% >> somepath\myvar.bat 
) 
call somepath\myvar.bat