如何在批处理文件中使用变量%TIME:~0.2%,以便带有前导空格的时间不会导致错误?

Cha*_*ahl 4 formatting datetime batch-file

我正在尝试运行批处理文件,该文件针对XML文件运行XSLT转换并写出第二个XML文件.

此XML文件名由批处理文件中的以下行确定:

 ICS_%DATE:~-4%_%DATE:~4,2%_%DATE:~7,2%_%TIME:~0,2%_%TIME:~3,2%_DATA.xml
Run Code Online (Sandbox Code Playgroud)

当时间具有前导空格(即,上午10:00之前的任何时间)时,变量%TIME:~3,2%返回带有前导空格的结果,这会导致文件名被截断.结果文件为空.

如果我在上午10:00之后运行批处理,一切正常.如何%TIME:~3,2%在上午10:00之前生成类似于工作的值?

fox*_*ive 12

这将解决名称问题中的空间,并将其替换为零,以便在列表中正确排序.

set name=ICS_%DATE:~-4%_%DATE:~4,2%_%DATE:~7,2%_%TIME:~0,2%_%TIME:~3,2%_DATA.xml
set name=%name: =0%
Run Code Online (Sandbox Code Playgroud)


Cha*_*ahl 1

为小时值设置一个变量,如下所示解决了我的问题: FOR /F "tokens=* delims= " %%a IN ("%TIME:~0,2%") DO SET hour=%%a