使用PowerShell输出作为batch file中的variables时遇到问题

我可以从Windows命令提示符手动运行此命令:

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

它返回一个从0到13的数字。我想在batch file中使用这个结果,但这一行给出了一个错误:

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

错误:

)。这一天在这个时候是意外的。

我怀疑我需要添加更多的引号,双引号,撇号和括号,但我已经尝试了所有可能的组合,不能得到它的工作。 我想也许还需要一些^^?

FOR命令中,你不仅需要跳过圆括号,而且还要跳过mod(百分比)。 百分之零的百分比逃跑了。 请注意,这只能在batch file中使用,而不能在命令行中使用。

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