使用 Powershell 格式化批处理文件中的日期和时间
Formatting date and time in batch file using Powershell
我想以特定格式使用当前日期和时间命名文件。
为此,我使用以下代码将 %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% 确定这是由于日期和时间之间的 space,我想要的。
错误是什么,如何解决?
(请注意,我不能依赖 WMIC 是否可用,因此调用 Powershell 可能是最好的解决方案。无论如何,我有兴趣学习如何让这个特定代码工作。)
你可以试试这些
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
命令使用 space 和制表符作为分隔符来标记正在处理的行,默认情况下仅检索行中的第一个标记(在您的情况下为日期)。由于您的输出有两个 space 分隔的标记,我们需要禁用分词器(第一个示例,通过清除定界符列表),请求行中的所有标记(第二个示例)或仅请求所需的标记(第三个示例)
我想以特定格式使用当前日期和时间命名文件。
为此,我使用以下代码将 %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% 确定这是由于日期和时间之间的 space,我想要的。
错误是什么,如何解决?
(请注意,我不能依赖 WMIC 是否可用,因此调用 Powershell 可能是最好的解决方案。无论如何,我有兴趣学习如何让这个特定代码工作。)
你可以试试这些
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
命令使用 space 和制表符作为分隔符来标记正在处理的行,默认情况下仅检索行中的第一个标记(在您的情况下为日期)。由于您的输出有两个 space 分隔的标记,我们需要禁用分词器(第一个示例,通过清除定界符列表),请求行中的所有标记(第二个示例)或仅请求所需的标记(第三个示例)