2015-02-06 44 views
0

我有一個python程序main.py它需要每天運行。它會打印一些關於CMD提示的信息,但我想在某些文本文件中找到這些信息。如何使用日誌文件在任務計劃程序中配置bat文件?

我可以像下面的bat文件配置此:

C:\Python27\python.exe D:\main.py > D:\log\FileName_date.txt 

日誌文件名應該是FileName_20150206.txt爲在2月7日到2015年

一個運行於2015年2月6日和 FileName_20150207.txt運行

這裏的問題是,如何在YYMMDD格式中設置或替換文件名中的日期,以在任務調度程序中配置.bat文件?

回答

1

得到了答案,

@echo off 
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a" 
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%" 
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%" 

set "fullstamp=%YYYY%-%MM%-%DD%" 
python D:\main.py > D:\log\FileName_%fullstamp%.txt 

它保存爲.bat文件,並在調度配置.bat文件的路徑。

然後你會得到d日誌文件:\登錄\ FileName_2015-02-06.txt

+0

如果你使用的不是CMD的Python,越來越日誌名稱是簡單的:'進口日期時間;''LOGNAME = r'D:\日誌\文件名_ {:%Y-%間 - %d} .txt'.format(datetime.date.today())'。打開日誌文件並將其作爲'stdout'傳遞給'subprocess.Popen'。 – eryksun 2015-02-06 08:45:54

+0

是的,但目前程序設計的方式是打印CMD中的日誌信息。如果出現上述情況,我可以修改pgm以將信息存儲在日誌文件中而不是cmd提示符下。 – 2015-02-06 08:50:37

+0

我打算使用另一個Python腳本而不是批處理文件來運行main.py,例如'logfile = open(logname,'w');''subprocess.Popen([sys.executable,r'D:\ main.py'],stdout = logfile).wait()'。 – eryksun 2015-02-06 08:54:29

相關問題