Bir dosyadaki zaman damgasını nasıl değiştirebilirim? [çift]


74

Olası Çoğalt:
Bir dll veya exe içindeki zaman damgasını nasıl değiştirebilirim?
Linux komutunun Windows eşdeğeri 'dokunma'?

Bir dosyanın zaman damgasını komut satırı üzerinden belirli bir tarihe nasıl ayarlayabilirim?

Benim özel durumum Windows 7.


1
Muhtemelen sorunuzu netleştirmeli ve yeni zaman damgasını seçmek istediğinizi belirtmelisiniz. İki güncel cevap, touchbir dosyanın zaman damgasını geçerli saate ayarlayan Unix komutunun bir Windows portunu aradığınızı varsayar .
William Jackson,

Sysinternals’a baktım ve bunun için bir faydası olmadığından eminim. Superuser.com/questions/135901/…
William Jackson

@ William Jackson Değişti, bunun için teşekkürler. Ayrıca, eğer gerçekten Unix komutunun bir touchlimanıysa, tarihi belirleyebilirdim. en.wikipedia.org/wiki/Touch_(Unix) . Otomatik bağlantıda bir sorun var, parantez aldığınızdan emin olun.
Joseph Hansen

1
Ben ... okumak için hiç çabalamadığıma inanamıyorum man touch. Bana yeni bir şey öğrettin.
William Jackson,

Yanıtlar:


92

William Jackson'ın cevabı nedeniyle , Stack Overflow'ta da benzer bir soru buldum .

Kabul edilen cevap Powershell ve bu komutları kullanacağını belirtir:

$(Get-Item ).creationtime=$(Get-Date "mm/dd/yyyy hh:mm am/pm")
$(Get-Item ).lastaccesstime=$(Get-Date "mm/dd/yyyy hh:mm am/pm")
$(Get-Item ).lastwritetime=$(Get-Date "mm/dd/yyyy hh:mm am/pm")

Düzenle

İki örnek:

(Bu yorumlardan :) :) Bir dosyanın son erişim zamanını aaa.csvgeçerli saate ayarlayın:

$(Get-Item aaa.csv).lastwritetime=$(Get-Date)

Dosyanın oluşturulma zamanını foo.txtsabah 6: 00'da 24 Kasım 2015'e ayarlayın:

$(Get-Item foo.txt).creationtime=$(Get-Date "11/24/2015 06:00 am")

8
Özyinelemeli ve biraz daha kısa, daha az okunabilir olsa da hafif bir varyasyon: "gci -rec |% {$ _. LastWriteTime = ($ _. LastAccessTime = ($ _. CreationTime = (alma tarihi" 2011-09-14T07: 10:00 ")))}"
codybartfast

9
Powershell hakkında fazla bir şey bilmeyen insanlar için, Get-Item'den sonra dosya adını koymak zorundasınız. Özniteliği, dokunma komutunun varsayılan davranışı gibi geçerli tarih / saate ayarlamak için Get-Date'den sonra dizgiyi de atlayabilirsiniz. Sonunda, bu kodu powershell komutuna argüman olarak, sadece mevcut bir toplu iş dosyasından çalıştırması için iletebilirsiniz. Örnek:powershell $(Get-Item aaa.csv).lastwritetime=$(Get-Date)
sjbotha

1
Bunu bir dizindeki her dosya için yapmak istersem?
CodyBugstein

"Her dosyayı Powershell" için arayın. Bunun gibi sorular bulabilirsiniz: stackoverflow.com/q/16804265/756329 ve stackoverflow.com/q/181036/756329
Joseph Hansen

4
Tarih ve saat formatı komuta göre değil, sistem genelinde birdir (sistemimde, gg / aa / yyy idi).
Martin Argerami

40

Bu sorunun cevaplarına bakınız .

Özellikle, bu doğal olarak yapılabilir:

copy /b filename.ext +,,

Bu zaman damgasını geçerli saate ayarlayacaktır.

copyKomutun belgeleri TechNet'te .

Virgüller, Hedef parametresinin atlandığını gösterir .


2
Nasıl çalıştığını açıklayabilir misin? Nedir +,,? Hangi tarihte ayarlandığını nasıl bilebilirim?
Joseph Hansen

1
@josmh Ayrıntılar için belge bağlantısını kontrol edin. Komutu çalıştırdığınızda zaman damgası geçerli saate ayarlanır. Zaman damgasını seçtiğiniz bir keyfi zamana göre değiştirmek istediğinizi mi ima ediyorsunuz?
William Jackson,

7
Bunun dosya için yeni bir tarih seçmeme nasıl yardımcı olduğunu görmüyorum?
Joseph Hansen

Bununla ilgili temel sorun, dosyanın geçerli dizinde olmaması ... ... yerine "dokunmak" yerine dosyayı geçerli dizine kopyalamasıdır.
Kasey Speakman

1
@KaseySpeakman - bu komut geçerli dizinde olmaya dayanır. Kullanımdan pushd FILEDIRönce, popd
komuttan

25

Nirsoft kurtarmaya: ücretsiz araç denemek NirCmd . Küçük bir komut satırı programında bir çok kullanışlı araç var. Komutlardan biri, oluşturulan zaman ve değiştirilmiş zamanın ikisini veya her ikisini de belirtmenize olanak tanır :

nircmd.exe setfiletime "c: \ temp \ myfile.txt" "24-06-2003 17:57:11" "22-11-2005 10:21:56"


3
Ayrıca bir dosyadan diğerine zaman geçirmek istiyorsanız, dosyadan clonefiletime dosyası en iyisidir!
JasonXA

: Sigara komut satırı, ama daha uygun toplu düzenlemeye BulkFileChanger Nirsoft tarafından
SaAtomic

15

Cy.twin'i kullanarak, test.txt zaman damgasını 31 Ocak 2000'de 31 Ocak 2000'e ayarlamak için:

touch -t 200001310001.00 test.txt

Bu geçersiz tarih format hatasıyla geri geliyor.
ziggy

@ziggy tüm sıfırları aldığınızdan emin olun ...
Joseph Hansen

2
Bu, benim touch -t 201608221400 filenameiçin 22.08.2016 14:00:00 olarak ayarlamak için mükemmel çalıştı .
SebastianH

1

Aşağıdaki web sayfasına göz atın: http://www.stevemiller.net/apps/

Win32 Console Toolbox, bir veya daha fazla dosyadaki süreleri değiştirmenize izin veren 'touch' adlı bir yardımcı program içerir. Yine de sadece ABD formatlarında çalıştığına inanıyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.