Dalam file batch saya perlu mengekstrak bulan, hari, tahun dari perintah tanggal. Jadi saya menggunakan yang berikut, yang pada dasarnya mem-parsing perintah Date untuk mengekstrak sub-stringnya menjadi variabel:
set Day=%Date:~3,2%
set Mth=%Date:~0,2%
set Yr=%Date:~6,4%
Ini semua hebat, tetapi jika saya menyebarkan file batch ini ke mesin dengan pengaturan regional / negara yang berbeda, itu gagal karena bulan, hari dan tahun di lokasi yang berbeda.
Bagaimana saya bisa mengekstrak bulan, hari dan tahun terlepas dari format tanggal?
windows-7
windows-xp
batch
date
AngryHacker
sumber
sumber
Jawaban:
Sumber: http://ss64.com/nt/syntax-getdate.html
Metode 2 (cmd tunggal)
GetDate.cmd
Metode 1 (cmd + vb)
GetDate.cmd
getdate.vbs
sumber
Set _second=00%%K
ketika mengekstraksi dariwmic
dan pad dengan nol depan seperti yang lain.Windows XP dan yang lebih baru
getDate.cmd
Keluaran
sumber
ECHO %year%-%month%-%day%
yang ISO dan format filesystem yang kompatibel (belum lagi secara otomatis mengurutkan berdasarkan tahun-bulan-hari). :-).Saya tahu itu bukan apa yang Anda minta, tapi saya menggunakan port Windows dari
date
aplikasi Linux dari perintah di dalam file batch dan kemudian menetapkan hasilnya ke variabel.Saya belum menemukan cara untuk mendapatkan tanggal dengan andal hanya dengan menggunakan perintah batch.
sumber
Gunakan file batch ini untuk format YYYY-MM-DD. Itu menggunakan alat instrumentasi jendela yang harus hadir di semua versi Windows terbaru untuk mendapatkan string datetime yang independen dari pengaturan regional.
Simpan ke file batch ke path (misalnya) c: \ windows \ rdate.bat kemudian akses dengan CALL RDATE.BAT untuk mengatur variabel. Bergantian, salin kode ke file batch Anda.
Format tanggal ini cocok untuk nama file dan pencatatan. Jenisnya benar. Variabel logtime menambahkan variabel tanggal + waktu sebagai YYYY-MM-DD-HHMMSS yang cocok untuk digunakan dalam mencatat aktivitas file batch pada akurasi kedua.
Sesuaikan format tanggal (dan waktu) sesuai keinginan. REM layar gema dalam produksi. Dua angka dalam setiap pemilihan teks adalah indeks karakter awal berbasis nol dan jumlah karakter untuk disalin, misalnya,% datetime: ~ 0,4% mengambil substring 4 karakter mulai dari posisi 0.
sumber
wmic os get localdatetime
Meskipun Anda benar bahwa VS 2008 menghasilkan batchfile, Anda dapat menjalankan hampir semua program yang Anda inginkan, termasuk skrip Powershell dan program lainnya.
Edit:
Berikut beberapa pertanyaan serupa:
/programming/1051845/visual-studio-2008-professional-build-process /programming/3049369/embed-application-compilation-compilation-time-stamp
Awalnya, saya akan memindahkan ini ke SO. . .
sumber
Apakah Anda mencoba menggunakan
NET TIME \\%ComputerName%
bukanDATE
? Saya pikir ituNET TIME
seharusnya menyediakan data dalam format yang konsisten terlepas dari lokal.sumber
net time
selalu menampilkan dalam format m / d / yyyy. @AngryHacker, dengan pengaturan apa tidak berfungsi untuk Anda?Berkat posting Shekhar ini berfungsi sesuai kebutuhan dan nol waktu.
Output: LogFile-20151113-0901.txt
sumber
Ini mungkin agak di luar topik, tetapi di sini ada file .bat yang saya tulis untuk backup terjadwal saya dan juga panggilan dari tindakan postbuild di visual studio. Saya harap beberapa orang akan merasakan manfaatnya.
Simpan yang berikut ini ke file .bat
sumber
%date%
dan%time%
, yang sadar lokal, dan tidak dapat benar-benar diuraikan dengan cara yang dapat diprediksi seperti yang diminta OP.