Saya telah menjadwalkan skrip cadangan yang membuat database dump. Bagaimana saya bisa menambahkan cap waktu tanggal ke nama file?
Saya berbicara tentang Windows dan CMD.
Saya telah menjadwalkan skrip cadangan yang membuat database dump. Bagaimana saya bisa menambahkan cap waktu tanggal ke nama file?
Saya berbicara tentang Windows dan CMD.
Jawaban:
Di prompt perintah dan file batch, Anda dapat menggunakan %date%
dan %time%
untuk mengembalikan tanggal dan waktu masing-masing. Tanggal berfungsi dengan baik, tetapi nilai waktu yang dikembalikan berisi titik dua, yang ilegal untuk digunakan dalam nama file, tetapi ada cara untuk menghapusnya.
Gunakan sesuatu seperti:
COPY file.txt file_%time:~0,2%%time:~3,2%%time:~6,2%_%date:~-10,2%%date:~-7,2%%date:~-4,4%.txt
Ini akan menghasilkan nama file seperti file_172215_01062009.txt
Pembaruan: Komentar di bawah ini memiliki tikungan menarik pada perintah ini serta beberapa masalah potensial yang dapat Anda hindari.
%DATE%
dan %TIME%
sadari lokal! Itu berarti bahwa pada mesin Eropa, Anda dapatkan DD.MM.YYYY
. Arrgh.
Gunakan variabel %DATE%
dan / atau %TIME
lingkungan, secara opsional menggantikan karakter yang tidak diizinkan dalam nama file, menggunakan %name:from=to%
(%TIME::=%
akan menghapus semua titik dua).
teori »echo% date% 2009-06-01 teori »gema% waktu% 16: 30: 41,46 teori »gema% waktu :: =% 163052,17 teori »echo% time :: =,% 16,30,58,68 teori »gema cadangan-% tanggal% -% waktu :: = -% .zip backup-2009-06-01-16-31-18,82.zip
set tmp=%tmp:x=y%
dll.
Satu-satunya cara yang dapat diandalkan untuk mendapatkan tanggal yang sesuai apa pun pengaturan regional, adalah solusi dari foxidrive @ /programming/11037831/filename-timestamp-in-windows-cmd-batch-script
@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 "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
pause
Gunakan% DATE% variabel dalam nama file.
Ada variabel% TIME% juga, tetapi mengandung karakter yang tidak diizinkan dalam nama file.
Berikut adalah contoh penulisan baris teks ke dalam file baru, di mana file yang dibuat memiliki tanggal dan waktu dalam namanya.
echo "testfile" >> backup-%DATE%.txt