我需要在批处理脚本中以秒为单位获取时间戳。
我正在尝试运行powershell命令并将结果放入变量中。
这就是我尝试的:
FOR /F %%t IN (' PowerShell -Command "(Get-Date -UFormat %s -Millisecond 0).ToString()" ') DO SET tmsmp=%%t
当我运行PowerShell -Command "(Get-Date -UFormat %s -Millisecond 0).ToString()"
时,效果很好。
我跑步时:
FOR /F %t IN (' PowerShell -Command "(Get-Date -UFormat %s -Millisecond 0).ToString()" ') DO SET tmsmp=%t
从命令行我得到
提示中的SET tmsmp=1553591432
。但是在脚本内部,我没有得到结果,%tmsmp%
仍然为空。
为什么?
答案 0 :(得分:0)
您的主要问题是 %
是批处理文件中的特殊字符,这意味着PowerShell的 %s
应该以其他 %
,即 %%s
也就是说,我宁愿使用批处理方法来简化该命令,以获取不带扩展名的文件名,因为它会将上一个句点(包括最后一个句点)分割开来。
For /F %%t In ('PowerShell Get-Date -UFormat %%s') Do Set "tsmp=%%~nt"