Windowsta herhangi bir dosyayı sağ tıklayıp özellikler derseniz güvenlik , ayrıntılar, önceki sürümler ... gibi sekmelerin olduğu yeni bir pencere açılacaktır. Bu sekmelerden ayrıntılar sekmesini
1. Oluşturma Tarihi : Dosyanın hangi tarihte oluşturulduğu bilgisini bize vermektedir. (öğenin ilk kez oluşturulduğu ve kaydedildiği tarih)
2. Değiştirme Tarihi : Dosyanın hangi tarihte değiştirildiğini bize göstermektedir. (mevcut bir öğenin değiştirildiği ve kaydedildiği tarihtir)
Takipçlerimizden biri , bir dosyanın değiştirilme tarihin ismine otomatik olarak ekleyip ekleyemeyeceğimizi sormuştu. Bunu bir script ile yapmak mümkündür.Elbette şunu da göz önünde bulundurmak gerekiyor dosyayı yeniden adlandırdığınız anda değiştirmiş olacağınızdan değiştirme tarihi yeniden adlandırma tarihi olacak ve buda ismin sonuna ilave edilecektir. Örnek olması açısından uzantısı .txt olan bir dosyanın değiştirilme tarihini dosya ismine ilave edelim. Script dillerinde bazen bat veya cmd bazende Vbs kolaylık sağlar , hangisinde çok daha az kod yazılması gerekiyorsa o daha pratiktir gibi düşünülebilir.
bat dosyası ile bir dosya ismine değiştirilme tarihini ilave edelim
Bu örneğimizde daha az kod içeren bat veya cmd dosyası olduğu için daha pratiktir denilebilir. Örneğimizin uygulamasına geçersek:
1. Aşağıdaki kodları not defterine yapıştırıp bir isim verin ve uzantısını .bat veta .cmd yapın
setlocal enabledelayedexpansion for %%F in ("C:\test\*.txt") do ( set "MDate=%%~tF" set "ParsedDate=!MDate:~0,2!.!MDate:~3,2!.!MDate:~6,4!" REM To add time set "ParsedDate=!MDate:~0,2!.!MDate:~3,2!.!MDate:~6,4!_!MDate:~11,2!.!MDate:~14,2!" copy %%F %%~dpnF_!ParsedDate!%%~xF.new ) for %%F in ("C:\test\*.txt") do ( del %%F ) ren "C:\test\*.new" *. exit
İşleminiz sona erdiğinde aşağıdaki gibi bir dosya elde etmiş olmanız gerekir. (Uzantı bat veya cmd olabilir)
2. C dizininde test isminde bir klasör oluşturun "C:\test" ve içerisine değiştirilme tarihinin ismine ilave edilmesini istediğiniz dosyaları atın.
3. Şimdide ilk maddedeki kodlarla oluşturduğunuz bat veya cmd dosyasını çalıştırın. Uzantısı .txt olan tüm dosyaların isimlerinin sonuna değiştirme tarihlerinin ilave edildiğini göreceksiniz.
Sizler için scriptin hazır halini sayfa sonundaki indirme linkinde sunduk. Ayrıca içerisinde mesela "a.txt" dosya ismine değiştirme tarihini ilave eden birde vbscript ilave ettik , scriptlerdeki kodlarını kendinize göre düzenleyebilirsiniz.
- Topluca Dosya ismi nasıl değiştirilir Burada
- Android telefonda bir dosya ismi nasıl değiştirilir Burada
- Dosya yolu çok uzun hatası ve çözümü Burada
- Yeni dosya veya klasör ismini kendiniz belirleyin Burada
- Klasör ismi olarak emoji kullanmak Burada
- vbs ile bir dosyanın ismini değiştirme Burada
- Sağ tuşa Dosya listesini kopyala ilavesi Burada
- Sağ tuşa klasör içeriğini sil fonksiyonu Burada
- Süper gizli dosyalar nedir nasıl görünür yapılır Burada
- Gizli Dosya ve klasörlerin gösterilmesini engelleyin Burada
hala aktifmisiniz bilemiyorum ama bu isimlendirme olayında değiştirme tarihi yerine oluşturma tarihini vermek için nasıl bir işlem yapmak lazım
Araştırıp kedi ihtiyacınıza göre kodları düzenleyerek sorunu çözmenize memnun oldum. Yeri geldikçe bu tarz konulardan daha sık bahsetmeye çalışacağız kısmetse.
Daha önce bununla alakalı sormuştum. Başlığı görünce dikkatimi çekti. Birkaç gündür internete ve siteye giremedim. Takipçilerinize ilgi göstermeniz sevindirici.
Burada verdiğiniz vbs scriptinin ismi de Modify_date. Ama çalıştırınca şimdiki tarihi ekliyor. Scriptteki 'now' ifadeleri de bunu gösteriyor sanırım.
Önceki konuda yorumda da verilen bat scripti üzerinde biraz araştırma yapıp uğraştım.
Paylaşayım, birilerinin işine yarayabilir. Kodlar şöyle:
- for ile BAT script:
for %%F in ("%~dp0*.txt") do ( copy "%%~nF%%~xF" "%%~nF %%~tF%%~xF.new" )
::del *.txt
ren *.new *.
- powershell hibrid BAT script:
PowerShell -Nop -C "Get-ChildItem '%~dp0*.txt'|Copy-Item -Destination {'%~dp0{0} {1:yy-MM-dd HH.mm.ss}.txt.new' -f $_.BaseName,$_.LastWriteTime}"
::del *.txt
ren *.new *.
bu kodların ikisi de dosyaya değiştirme tarihi ekleyerek kopyalar. Kopyalamayıp sadece sonuna tarih eklensin istenirse '::del' ifadesinin başındaki iki noktalar silinebilir.
- powershell (klasörleri de isimlendirir) PS1 script:
Get-ChildItem |Foreach-Object { Rename-Item $_ -NewName ("{0} {1}{2}" -f $_.BaseName,$_.LastWriteTime.ToString('yy-MM-dd hh.mm.ss'),$_.Extension) }
klasörlerin (powershell) veya dosyaların bulunduğu dizine atıp çalıştırsak şartlara uyan (örnekte txt) hepsine değiştirme tarihi ekler.
autoit veya vbs scriptleriyle dosyalarda metin düzenleme, bulma, değiştirme (bilhassa düzenli ifadelerle; regex) gibi konularda da bahs edebilirseniz çok memnun olurum.
Tekrar ilginiz için teşekkür ediyorum.
Kullanıcılar tarafından bir istekti ve yazılımsız yapmak istiyorlardı, elbette alternatif yazılımlar bulunup kullanılabilir.
İlginç....! Ama bunu yapan 3.parti "rename" karakterli yazılımlar var Windows tarafında.....Bu yukarıdaki biraz işin eğlence kısmı olmuş......!
Gnu/Linux tarafında bu işlemi yapan birkaç rename karakterli yazılım da mevcut.Mesela Dosya Yöneticisi (linux) Thunar.....Topluca yeniden adlandırma (batch işlemi deniyor buna) ve birden fazla dosya/dizinin oluşturulma/erişim tarihi tek seferde değiştirme ve bunu "KALICI(dosya/dizin ismi değişse bile) HALE GETİRME" opsiyonları da var.Galiba bunu yaparken C++ .h dosyasını dosya özelliklerinin içine gömüyor.Tabii bu gömme olayı Windows Gezginin'de olmadığı için dosya/dizin ismi değişti mi? tarihlerde değişiyor.(aslında bunun windows kayıt defterinden engellemenin de yolu var ama herkes yapabilir mi? (windows pc kullanıcıları) bilemiyorum.Yapılması gereken NTFS Dosya Sistemin kayıt özelliğini devreden çıkartmak....
@Faruk : Rica ederim ,faydalı olmasını dilerim.
@shampuan : txt olan kısmı 7z olarak deiştirip denemelisin ve evet kodda yeralan "C:\.." yolunu da değiştirmen gerek.
Çok yararlı bir👍 konu işime çok yarayacak teşekkürler 👍
Nedense konu tanıdık geldi 😀 Peki sadece txt uzantısında mı geçerli? Bana bunun 7z'lisi lazım. Bir de mesela ben bunu C'ye değil de D:/şu klasör bu klasör gibi bir klasöre atarsam, içerikteki C:'li kısmı da ona göre değiştirmeli miyim?