回答
我發現this thread上有Interweb事情。歸結爲:
@echo off
setlocal enableextensions
for /f "tokens=*" %%a in (
'VER'
) do (
set myvar=%%a
)
echo/%%myvar%%=%myvar%
pause
endlocal
您也可以重定向的命令到一個臨時文件的輸出,然後把該臨時文件的內容到你的變量,likesuchashereby:
cmd > tmpFile
set /p myvar= < tmpFile
del tmpFile
增光在Tom的硬件上線程。
真正有用的技巧是使用臨時文件。 – hoang 2012-12-06 12:49:11
底部方法的缺點(在所有其他方面都是可取的),它不適用於多線輸出。 – user1167442 2016-11-29 15:46:13
對於VER我會走另一條路: for/f「tokens = 2 delims = [,]」%% a in('ver')do set version %% a echo%version% – Hardoman 2017-04-06 14:44:50
FOR /F "tokens=* USEBACKQ" %%F IN (`command`) DO (
SET var=%%F
)
ECHO %var%
我一直使用usebackq所以,如果你有一個字符串插入或長文件名,您可以使用雙引號沒有搞砸了該命令。
現在,如果你的輸出將包含多行,你可以做到這一點
SETLOCAL ENABLEDELAYEDEXPANSION
SET count=1
FOR /F "tokens=* USEBACKQ" %%F IN (`command`) DO (
SET var!count!=%%F
SET /a count=!count!+1
)
ECHO %var1%
ECHO %var2%
ECHO %var3%
ENDLOCAL
@JesseChisholm Only OP can accept一個答案。根據他的個人資料頁面,這個問題的OP最後在6月15日21:54發生。 – Melebius 2016-10-20 09:52:05
在Win7系統中爲我工作,謝謝! (是的,這是7年的有用性) P.S.不要忘記在命令中展開%到%%! – 2018-01-16 18:09:44
我已經測試過它這樣,它的工作: SET/P瓦爾= | Cmd
通過將命令輸入到變量提示符中,將命令「Cmd」的結果插入到變量「Var」中。
-Update-
它不工作,我的壞,劇本我所做的就是這樣的:
SET /P Var= | dir /b *.txt
echo %Var%
它實際上是展示我們說 「的test.txt」,但它實際上是顯示「dir/b * .txt」命令的結果,而不是回顯%var%。我感到困惑,因爲兩個輸出都是一樣的。
要讀取文件...
set /P Variable=<File.txt
寫一個文件
@echo %DataToWrite%>File.txt
注;在<>字符之前有空格會導致在變量末尾添加一個空格,也是
要添加到文件中,如記錄器程序, 首先製作一個文件,其中包含一個名爲e 。TXT
set /P Data=<log0.log
set /P Ekey=<e.txt
@echo %Data%%Ekey%%NewData%>log0.txt
日誌看起來是這樣
Entry1
Entry2
等
反正一對夫婦有用的東西
cd %windir%\system32\inetsrv
@echo off
for /F "tokens=* USEBACKQ" %%x in (
`appcmd list apppool /text:name`
) do (
echo|set /p= "%%x - " /text:name & appcmd.exe list apppool "%%x" /text:processModel.identityType
)
echo %date% & echo %time%
pause
我看不出如何解決這個問題。 'appcmd'不是一個標準的程序,我看不到你把程序輸出分配給一個變量的地方。最後你需要更多的解釋 – jeb 2017-08-04 05:58:12
在一行:
FOR /F "tokens=*" %g IN ('*your command*') do (SET VAR=%g)
命令輸出將在%克被設定則在VAR。
的- 1. 如何將命令的輸出設置爲批處理文件中的變量
- 2. 如何連接Windows批處理文件的命令輸出
- 3. 如何將命令輸出設置爲批處理中的變量
- 4. 批處理文件命令
- 5. 作爲命令執行輸出的字符串的批處理
- 6. 將多個批處理命令的輸出寫入文本文件的一行
- 7. 批處理文件 - 將命令和輸出重定向到一個文件
- 8. 如何使用批處理文件設置命令提示符的設置?
- 9. 如何在Windows批處理文件中設置命令的工作目錄?
- 10. Spring批處理 - 如何生成一個批處理作業的輸出文件作爲excel表
- 11. 批處理文件命令/處理
- 12. 爲命令創建批處理文件
- 13. 無法設置輸出文件:彈簧批處理作業
- 14. 一次爲每個文件執行多個批處理命令
- 15. 在Windows批處理文件中使用PowerShell命令的輸出
- 16. Git命令行和批處理文件有不同的輸出
- 17. 如何通過批處理文件傳遞命令作爲命令行參數
- 18. 批處理命令如何爲列表設置/ p
- 19. 解析Windows批處理文件的輸出以用於下一批處理文件命令
- 20. 批處理文件在輸出命令之前添加一個隨機的「1」。
- 21. 如何使用windows cmd /批處理從git命令輸出設置變量
- 22. 從CMD命令中設置批處理文件變量的值
- 23. 批處理命令輸出爲文本變量
- 24. 批處理文件輸出
- 25. 使用批處理腳本將命令輸出到文件
- 26. 從批處理文件重定向輸出,包括命令
- 27. 如何在批處理文件中查找出現字符串輸出命令
- 28. 批處理文件 - 不被識別爲一個內部命令
- 29. FINDSTR命令在一個批處理文件中顯示變量輸出
- 30. 批處理文件中設置WMI輸出有我的批處理腳本第一次去一個變量
可能重複[批量相當於猛砸反引號(http://stackoverflow.com/questions/2768608/batch-equivalent-of-bash-backticks) – 2014-07-01 16:52:05
其實原來似乎是[如何在Windows中的變量中獲取命令的結果?](http://stackoverflow.com/q/108439/12892)。 – 2014-07-01 16:53:56
[Windows批處理文件:如何使用命令的結果設置變量?](http://stackoverflow.com/questions/889518/windows-batch-files-how-to-set-a-variable - 一個命令的結果) – Nathan 2014-08-13 23:39:47