Gunakan cmd.exe
prosesor perintah untuk membuat nama file dengan stempel waktu untuk mencatat keluaran tugas terjadwal Anda
Untuk membangun jawaban oleh orang lain di sini, mungkin Anda ingin membuat file keluaran yang memiliki tanggal dan / atau waktu yang disematkan dalam nama file. Anda dapat menggunakan cmd.exe
prosesor perintah untuk melakukan ini untuk Anda.
Catatan: Teknik ini mengambil output string dari variabel lingkungan Windows internal dan memotongnya berdasarkan posisi karakter. Karenanya, nilai pasti yang diberikan dalam contoh di bawah ini mungkin tidak benar untuk wilayah Windows yang Anda gunakan. Selain itu, dengan beberapa pengaturan regional, beberapa komponen tanggal atau waktu dapat memasukkan spasi ke dalam nama file yang dibangun ketika nilainya kurang dari 10. Untuk mengurangi masalah ini, apit nama file Anda dengan tanda kutip sehingga ada spasi yang tidak diinginkan dalam file name tidak akan merusak baris perintah yang Anda buat. Bereksperimen dan temukan apa yang terbaik untuk situasi Anda.
Sadarilah bahwa PowerShell
lebih kuat dari cmd.exe
. Salah satu cara yang lebih kuat adalah dapat menangani wilayah Windows yang berbeda. Tapi jawaban ini tentang menyelesaikan masalah ini menggunakan cmd.exe
, bukan PowerShell
, jadi kami melanjutkan.
Menggunakan cmd.exe
Anda dapat mengakses berbagai komponen tanggal dan waktu dengan membagi variabel lingkungan internal %date%
dan %time%
, sebagai berikut (sekali lagi, nilai pembagian yang tepat bergantung pada wilayah yang dikonfigurasi di Windows):
- Tahun (4 digit):
%date:~10,4%
- Bulan (2 digit):
%date:~4,2%
- Hari (2 digit):
%date:~7,2%
- Jam (2 digit):
%time:~0,2%
- Menit (2 digit):
%time:~3,2%
- Detik (2 digit):
%time:~6,2%
Misalkan Anda ingin file log Anda diberi nama menggunakan format tanggal / waktu ini: " Log_[yyyyMMdd]_[hhmmss].txt
". Anda akan menggunakan yang berikut ini:
Log_%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt
Untuk mengujinya, jalankan baris perintah berikut:
cmd.exe /c echo "Log_%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt"
Menyatukan semuanya, untuk mengarahkan keduanya stdout
dan stderr
dari skrip Anda ke file log yang diberi nama dengan tanggal dan waktu saat ini, gunakan mungkin menggunakan yang berikut sebagai baris perintah Anda:
cmd /c YourProgram.cmd > "Log_%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt" 2>&1
Perhatikan penggunaan tanda kutip di sekitar nama file untuk menangani contoh komponen tanggal atau waktu mungkin memperkenalkan karakter spasi.
Dalam kasus saya, jika tanggal / waktu saat ini adalah 10/05/2017 9:05:34 AM, baris perintah di atas akan menghasilkan yang berikut:
cmd /c YourProgram.cmd > "Log_20171005_ 90534.txt" 2>&1