你是要 BAT 中將程式執行結果放到變數,還是
在 Powershell script 中將程式執行結果放到變數?
在 BAT 中,這操作有點複雜。
首先,
powershell “ls | Select-string -Pattern ‘MUSIC’” >%TEMP%\TXT
將輸出轉向到一個檔案
然後,利用 for 命令
set A=
記得上面有個空格作為 A 的內容
SETLOCAL ENABLEEXTENSIONS
SETLOCAL ENABLEDELAYEDEXPANSION
for /F %%i in (%TEMP%\TXT) do set A=!A! %%~i
這樣就能夠將檔案中的內容第一個非空白值全部串到變數A 當中
更進一步的操作用 for/? 來看 for 的用法
※ 引述《chiaohuang (宅男一枚)》之銘言:
: 因為某種需求需要寫 windows 的批次檔來幫我做繁瑣的事
: 我查了 google 我需要的指令可以透過 powershell 達成
: 類似
: powershell “ls | Select-string -Pattern ‘MUSIC’”
: 輸出是我要的沒錯
: 但我要怎麼把輸出的結果存在變數呢?
: 效果要類似linux 的
: # ret=$(ls | grep ‘MUSIC’)
: # echo $ret
: 謝謝
因為太麻煩了之前我都用 active perl 來處理