Powershell将结果推荐到批处理脚本变量中

时间:2019-03-26 09:19:21

标签: powershell batch-file

我需要在批处理脚本中以秒为单位获取时间戳。

我正在尝试运行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%仍然为空。

为什么?

1 个答案:

答案 0 :(得分:0)

您的主要问题是 % 是批处理文件中的特殊字符,这意味着PowerShell的 %s 应该以其他 % ,即 %%s

也就是说,我宁愿使用批处理方法来简化该命令,以获取不带扩展名的文件名,因为它会将上一个句点(包括最后一个句点)分割开来。

For /F %%t In ('PowerShell Get-Date -UFormat %%s') Do Set "tsmp=%%~nt"