将Python日期写入bat文件变量

时间:2017-05-25 19:15:31

标签: python batch-file

如何使用批处理文件语法获取日期的大量半工作示例,但它们通常过于冗长或难以理解。由于我可以保证机器将运行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(此时微秒出乎意料。

我不确定我是否缺少某种格式,但是关于此错误的搜索没有任何启发性。任何帮助表示赞赏。

1 个答案:

答案 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();