亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何用空格設置環境變量?

如何用空格設置環境變量?

如何用空格設置環境變量?我需要使用批處理文件將值設置為環境變量。我為此寫了劇本:@echo off set value="Hello world" setx -M srijani "%srijani%;%value%"它給出了錯誤:ERROR: Invalid syntax. Default option is not allowed more than '2' time(s). Type "SETX /?" for usage.我在谷歌上搜索發現,在使用空格時,我們需要將它寫在雙引號中。set value="Hello world"但是,這是行不通的。注:我在Windows 7上。
查看完整描述

2 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

按命令輸出的錯誤SETX是由于錯誤地使用引號將字符串賦值給變量造成的。value.

命令是參數是variable=value..對于大多數命令和應用程序,如果包含一個或多個空格或此列表中的任何其他字符,則通常需要用雙引號環繞參數:&()[]{}^=;!'+,`~..這些字符通過在命令提示符窗口中運行,顯示在最后一個幫助頁輸出中。cmd /?help cmd.

但這是錯誤的:

set value="Hello world"

在等號后面加上第一個雙引號,整個參數variable=value號令不在雙引號內。

這將導致將雙引號解釋為字符串的一部分,以便將其賦值給帶有名稱的變量。value..從等號到行尾的所有內容,包括雙引號和可能存在的尾隨空格和水平制表符,都在這里分配給變量。value而不僅僅是字符串Hello world如預期的那樣。

關于擴線

setx -M srijani "%srijani%;%value%"

因此,結果是:

setx -M srijani "Value of variable srijani;"Hello world""

和命令SETX將錯誤引用的參數解釋為語法錯誤。

更正將使用:

set "value=Hello world"

現在命令的整個參數用雙引號括在一起。因此,在分析行時忽略了以下內容:

  • 命令之間的所有空格/制表符

    第一個雙引號,
  • 第一個雙引號,
  • 最后一句雙引號,
  • 和所有可能存在的空格/制表符后,最后雙引號。

所以.Hello world分配給具有名稱的變量。value.

有關將字符串正確分配給環境變量的詳細信息,請閱讀為什么在命令行上使用‘set var=text’之后沒有帶有‘echo%var%’的字符串輸出?它還包含一個簡單的演示批處理代碼。

更多信息:

在中間某個位置包含一個或多個引號的參數字符串是如何解釋的,這分別取決于應用程序的命令。用1或更多解釋論點的行為"在參數字符串中,可以根據使用的編譯器而變化,如批處理文件:列出特定文件夾中的rar文件,并將結果寫入文本文件。當然還有命令/應用程序的源代碼。

對于大多數命令和應用程序,正確的語法是:

command "parameter in quotes"
"Path to application\app.exe" "parameter in quotes"

但是,有些應用程序需要參數字符串中間的引號。這樣的應用程序的一個例子是Windows資源管理器.

打開探險家窗口中顯示當前目錄的批處理文件中的。

explorer.exe /e,"%CD%"

不工作的有:

explorer.exe "/e,%CD%"
explorer.exe /e "%CD%"

所以explorer.exe要求在之后指定要打開的目錄。/e,在參數字符串中間加上引號,或者解釋"/e,%CD%"分別"/e %CD%"作為要顯示路徑的目錄的名稱。探險家窗戶。

另見SS64-Windows Explorer命令行選項.


查看完整回答
反對 回復 2019-07-02
?
米脂

TA貢獻1836條經驗 獲得超3個贊

SETX foo“\”這個env var在每個末尾都有空格和雙引號\“


查看完整回答
反對 回復 2019-07-02
  • 2 回答
  • 0 關注
  • 1027 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號