Windows
在批處理文件中使用 powershell 輸出作為變數時遇到問題
我可以從 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%