dos批處理下自動給環境變數賦值的問題
1樓:網友
1 使用者定義的變數稱之為環境變數不妥, 因為所設定的變數僅是在當前cmd視窗下有效,也並非定義某種環境。
2 應該說cmd提供給變數賦值僅乙個命令,那就是set
3 set 命令給變數賦值有三種基本形式,不加引數的和加 /p 及/a 其中,set/p 除了能接收鍵盤輸入值外,還提供了你所說的形式,把乙個檔案的第一行賦給變數, 而set/a 兼計算功能,將結果(數字型)賦給變數,且可一條命令(不用連線命令)給多個變數賦值。
4 按道理說用管道命令是可以代替使用者輸入的,正如你所說的實際上對set/p 不行,我只能這麼猜測, 命令無非是設計出來的程式,一般命令如遇執行過程中需要接收鍵盤輸入,設計者都考慮了可以接收管道傳入值代替,而這個set/p卻並沒有考慮它,以前dos的set命令並沒有/p功能,也許當初在"改造"它時疏忽,後來又覺得沒必要再去修改。總之實際不行是硬道理, 沒必要去追究為什麼。
5 我想很多人會有這種看法,要是可以把某命令的結果有個命令直接賦給變數就好了,遺憾的是沒有,好在有個for命令,經擴充套件功能後,確實「強大」得很,其中加/f 的可以把命令結果、檔案內容或多行的字串,逐行按需要擷取後直接進行處理或再利用set命令賦給某變數備用,提到它並不是說多了一種賦值方法,而是很多時候是在這個命令裡(還是利用set)賦值的。
2樓:網友
echo abcd|set /p a=
這樣有點多次一舉,下面這句能實現你的想法。
set a=abcd
dos批處理下自動給環境變數賦值的問題
3樓:賁亭晚呼詩
不妥,因為所設定的變數僅是在當前cmd視窗下有效,也並非定義某種環境。
應該說cmd提供給變數賦值僅乙個命令,那就是set
set命令給變數賦值有三種基本形式,不加引數的和加。p及/a
其中,set/p
除了能接收鍵盤輸入值外,還提供了你所說的形式,把乙個檔案的第一行賦給變數,而set/a
兼計算功能,將結果(數字型)賦給變數,且可一條命令(不用連線命令)給多個變數賦值。
按道理說用管道命令是可以代替使用者輸入的,正如你所說的實際上對set/p
不行,我只能這麼猜測,命令無非是設計出來的程式,一般命令如遇執行過程中需要接收鍵盤輸入,設計者都考慮了可以接收管道傳入值代替,而這個set/p卻並裂祥沒有考慮它,以前dos的set命令並沒有/p功能,也許當初在"改造"它時疏忽,後來又覺得沒必要再去修改。總之實際不行是硬道理,沒必要去追究為什麼。
我想很多人會有這種看法,要是可以把某命令的結果有個命令直接賦給變數就好了,遺憾的是沒有,好在有陵棗個for命令,經擴充套件功能後,確實「強大」得很,其中加/f
的可以把命令結果、檔案內容或肆汪搏多行的字串。
逐行按需要擷取後直接進行處理或再利用set命令賦給某變數備用,提到它並不是說多了一種賦值方法,而是很多時候是在這個命令裡(還是利用set)賦值的。
4樓:賽孝六婷
echoabcd|set團兄pa=
這樣有點多次一舉,下槐喚面鉛或凱這句能實現你的想法。
seta=abcd
批處理高手請進,批處理的批處理
怎麼不好使了。這個簡單批處理語法很正確啊。echo off set p userchoice 請輸入密碼if userchoice 1234567 goto aecho 密碼錯誤。a start 惡搞大王。exepause應該正確。你的問題老在問啊。直接找我就是了。if userchoice 123...
要學批處理,需要懂什麼?那些命令是DOS命令嗎等
不需要,直接學,說難也難,簡單也簡單,就看你想學成什麼樣了。那些可一說是dos命令因為是在偽dos的環境下工作的 批處理,就是一處理一批,先學單獨乙個乙個的命令,把乙個個命令放在一起可以成了批處理。現在學習dos命令有必要嗎?如果有必要該學點什麼命令呢?如果有需要,就學唄。沒必要。畢竟都是桌面作業系...
批處理簡單自動,批處理 簡單自動 ping
實現的方法和詳細的操作步驟如下 2 其次,完成上述步驟後,使用滑鼠左鍵雙擊以開啟檔案,見下圖,然後進入下一步。4 然後,完成上述步驟後,在 檔案 選項的下拉列表中,單擊 另存為 按鈕,如下圖所示,然後進入下一步。5 隨後,完成上述步驟後,在 另存為 視窗中,將檔名設定為 test.dat 並將儲存型...