我可以从 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 这时候是出乎意料的。
我怀疑我需要添加更多引号、双引号、撇号和括号,但我已经尝试了所有可能的组合,但还是无法正常工作。我想也许还需要一些 ^^?
答案1
在FOR
命令中,您不仅需要转义括号,还需要转义 mod(百分比)。括号用 转义^
,百分比用 转义%
。请注意,这仅适用于批处理文件,不适用于命令行。
FOR /F %%i IN ('powershell ^(new-timespan -start 01/01/2000 -end ^(get-date^)^).days %% 14') DO (
SET doc=%%i
)
ECHO %doc%