我正在尝试运行一个批处理文件,它运行一个可执行文件并将其输出重定向到日志文件。日志文件的名称必须以日期和时间作为文件名。这是我使用的命令:
"%PROGRAMFILES%\PostgreSQL\9.4\bin\vacuumdb.exe" --username postgres --verbose --analyze --all > E:\Logs\VacuumDB\%date:~10,4%_%date:~4,2%_%date:~7,2%_%time:~0,2%_%time:~3,2%_%time:~6,2%.log 2>&1
这个命令在cmd中直接粘贴可以正常工作。日志文件会按预期创建,名称为“2015_06_25__11_20_46.log”。但是,当将其粘贴到批处理文件中并在cmd中运行时,它将被解释成如下形式:
"C:\Program Files\PostgreSQL\9.4\bin\vacuumdb.exe" --username postgres --verbose --analyze --all 8_21_42.log 1>E:\Logs\VacuumDB\2015_06_26_ 2>&1
请注意,文件名已被截断,时间现在附加到命令参数中,而不是在文件名中。所以显然命令失败了。
这肯定是非常简单的事情,但我没有找到任何解决方法。非常感谢您的帮助。
谢谢!
> "E:\Logs\VacuumDB\%date:~10,4%_%date:~4,2%_%date:~7,2%_%time:~0,2%_%time:~3,2%_%time:~6,2%.log" 2>&1
。 - npocmaka