Windows

在批處理文件中使用 powershell 輸出作為變數時遇到問題

  • July 21, 2016

我可以從 Windows 命令提示符手動執行此命令:

powershell (new-timespan -start 01/01/2000 -end (get-date)).days % 14

它返回一個從 0 到 13 的數字。我想在批處理文件中使用這個結果,但是這一行返回了一個錯誤:

for /f %%i in ('powershell (new-timespan -start 01/01/2000 -end (get-date)).days % 14') do set doc=%%i

錯誤:

).days 在這個時候是出乎意料的。

我懷疑我需要添加更多引號、雙引號、撇號和括號,但我已經嘗試了所有可能的組合,但無法讓它發揮作用。我想也許也需要一些^^s?

FOR命令中,您不僅需要轉義括號,還需要轉義 mod(百分比)。括號用^, 百分比轉義%。請注意,這僅適用於批處理文件,而不是命令行。

FOR /F %%i IN ('powershell ^(new-timespan -start 01/01/2000 -end ^(get-date^)^).days %% 14') DO (
   SET doc=%%i
)

ECHO %doc%

引用自:https://serverfault.com/questions/791178