我想使用特定格式的当前日期和时间命名文件。
为此,我有以下代码将%datetime%
设置为我想要的格式
示例:2017-06-19 05_00_00
for /f %%a in ('powershell -Command "Get-Date -format yyyy-MM-dd\ HH_mm_ss"') do set datetime=%%a
这不太合适。我99%肯定这是由于我想要的日期和时间之间的空间。
错误是什么,如何解决?
(请注意,我不能依赖WMIC,所以调用Powershell可能是最好的解决方案。无论如何,我有兴趣学习如何使这个特定的代码工作。)
答案 0 :(得分:2)
您可以尝试使用其中任何一种
for /f "delims=" %%a in ('
powershell -Command "Get-Date -format 'yyyy-MM-dd HH_mm_ss'"
') do set "datetime=%%a"
for /f "tokens=*" %%a in ('
powershell -Command "Get-Date -format 'yyyy-MM-dd HH_mm_ss'"
') do set "datetime=%%a"
for /f "tokens=1,2" %%a in ('
powershell -Command "Get-Date -format 'yyyy-MM-dd HH_mm_ss'"
') do set "datetime=%%a %%b"
原始代码的更改
for /f
命令将使用空格和制表符处理的行标记为分隔符,默认情况下仅检索行中的第一个标记(在您的情况下为日期)。由于您的输出有两个空格分离标记,我们需要禁用标记生成器(第一个样本,通过清除分隔符列表),请求行中的所有标记(第二个样本)或仅请求所需的标记(第三个样本)