Nasıl bir dosya adı kullanarak uygun bir biçimde Windows komut satırında geçerli datetime almak için? | Netgez.com
SORU
14 EKİM 2008, Salı


Nasıl bir dosya adı kullanarak uygun bir biçimde Windows komut satırında geçerli datetime almak için?

Bir dosya içine koyabileceğim bir biçimde geçerli datetime almak için kullanabileceğim bir Windows komut satırı deyimi(ler) nedir?

Bir sahip olmak istiyorum .yarasa bu örnek için geçerli tarihle bir arşiv ve adının bir parçası olarak zaman,, Code_2008-10-14_2257.zip bir dizin fermuarlar kadar dosya. Bunu yapmak için herhangi bir kolay yolu var, makinenin bölgesel ayarları bağımsız?

Gerçekten yyyy-aa-gg olur ideal tarih biçimi hakkında umurumda değil, ama her şey basit iyi.

Åžimdiye kadar benim makinede bana Tue_10_14_2008_230050_91 verir bu, var:

rem Get the datetime in a format that can go in a filename.
set _my_datetime=Úte%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%

rem Now use the timestamp by in a new ZIP file name.
"d:\Program Files\7-Zip\7z.exe" a -r Code_%_my_datetime%.zip Code

Bunu kabul edebilirim, ama biraz hantal görünüyor. İdeal özlü ve biçimi daha önceden söylemiş olurdu.

Windows Server 2003 ve Windows XP Professional kullanıyorum. Bunu başarmak için ek araçlar güzel tarih biçimlendirme yapacak kişiler var farkındayım ancak) yüklemek istemiyorum.

CEVAP
14 EKİM 2008, Salı


Windows Batch File (.bat) to get current date in MMDDYYYY format. bkz

@echo off
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a%%b)
echo %mydate%_%mytime%

Eğer 24 saat/askeri biçimde zaman isterseniz, hat İÇİN: değiştirebilirsiniz

For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a%%b)

C:>.\tarih.bat< / ^ br . 2008-10-14_0642

Eğer Tarihi Bölge gün/ay sipariş bağımsız olarak isterseniz kullanabilirsiniz "os" ISO sırada olduğu bir kaynak gibi . LocalDateTime ALMAK WMIC

@echo off
for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j
set ldt=%ldt:~0,4%-%ldt:~4,2%-%ldt:~6,2% %ldt:~8,2%:%ldt:~10,2%:%ldt:~12,6%
echo Local date is [%ldt%]

C:>test.cmd< / ^ br . Yerel tarih.[2012-06-19 10:23:47.048]

EDİT: Saati ilk olarak, söz konusu talep tarihi eklendi EDİT: Bölge-bağımsız bir varyasyon WMIC . kullanılarak eklendi

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • CaptainDisillusion

    CaptainDisil

    18 EYLÃœL 2007
  • Nightmare2005

    Nightmare200

    14 Ocak 2007
  • PaulGBelliveau

    PaulGBellive

    5 Mart 2009