如何使用批处理文件语法获取日期的大量半工作示例,但它们通常过于冗长或难以理解。由于我可以保证机器将运行Python,我希望利用Python以一种友好的用户友好格式获取日期并将输出写入bat文件变量。
这是我的尝试:
FOR /F "tokens=* USEBACKQ" %%F IN (`python -c "import datetime
datetime.datetime.now().replace(microsecond=0).isoformat()"`) DO (
SET var=%%F
)
ECHO %var%
不幸的是,这不起作用。我收到这个错误:
.replace(此时微秒出乎意料。
我不确定我是否缺少某种格式,但是关于此错误的搜索没有任何启发性。任何帮助表示赞赏。
答案 0 :(得分:3)
试试这个(虽然你没有指定python版本):
FOR /F "tokens=* USEBACKQ" %%F IN (
`python -c "import datetime; print datetime.datetime.now().replace(microsecond=0).isoformat();"`
) DO (
SET var=%%F
)
echo %var%
您需要打印功能(否则批处理文件将无法处理输出)
对于更复杂的代码,我建议你使用" chimera" siberia-man的技术允许你将python和批处理代码放在一个带有新行等的文件中:
0<0# : ^
'''
@echo off
for /f "tokens=* delims=" %%a in ('python "%~f0" %*') do (
set "var=%%a"
)
echo %var%
exit /b 0
:::: PYTHON CODE GOES HERE :::::
'''
import datetime;
print datetime.datetime.now().replace(microsecond=0).isoformat();