2014-02-11 62 views
0

我有一個輸出單個字符串值的PowerShell腳本。我有一個需要執行PowerShell腳本的cmd批處理腳本,並將該單個PowerShell輸出值放入批處理腳本中的變量中。我正在尋找各種導出到文件或讀取文件的方法,但這不是我想要的。謝謝!如何將一個PowerShell輸出字符串放入一個cmd變量中?

(編輯)這裏就是我想要使用它(響應發佈腳本):

@echo off 
REM The next line puts the .ps1 output into the variable 
REM and, obviously, this does not work 
set pass_word=<C:\temp\PullPassword.ps1 
tabcmd login -s "http://myserver.net" -u mylogon -p %pass_word% 

(編輯) 我看到這裏的OP Getting Powershell variable value in batch script,也是答案看着在foxdrive的回答中,我開始玩FOR ... DO語句。我以爲我是用CMD非常好,無法弄清楚,爲什麼我有沒有工作:

for /f "delims=" %%a in ('powershell . "C:\temp\PullPassword.ps1"') do set val=%%a 
echo %a% 

當我看着foxdrive在其他職位完整的答案我突然想到:%A%是錯,我需要%val%!噢,恥辱!以下作品:

@echo off 
set mypath=C:\temp\PullPassword.ps1 
for /f "delims=" %%a in ('powershell . "C:\temp\PullPassword.ps1"') do set pass_word=%%a 
tabcmd login -s "http://myserver.net" -u mylogon -p %pass_word% 

所以我會信貸,這是由於和標記foxdrive的答案是正確的,即使它是在其他帖子澄清我的錯誤。

+2

你可以發佈你的腳本,或者至少足以證明你正在嘗試做什麼嗎? – mjolinor

回答

1

這可能有所幫助:它期望powershell腳本將文本輸出到STDOUT,這是它出現的正常位置。

@echo off 
for /f "delims=" %%a in (' powershell "script.ps1" ') do set "var=%%a" 
相關問題