




Klasördeki Dosyaların Tarihlerini Diğer Klasördeki Farklı Uzantılı Dosyalara Aktarma
-
hypnot1c bunu yazdı
Attığım linke bir bakayım dedim bunun için komut varmış.
https://nircmd.nirsoft.net/clonefiletime.html
Şunu indirdim : https://www.nirsoft.net/utils/nircmd.zip
Çıkartığım dosya yolunda CMD yi açtım. Test ortamı oluşturup test ettim oldu.
for %i in (C:\ARW\*) do (nircmdc.exe clonefiletime "C:\ARW\%~ni.arw" "C:\JPG\%~ni.png")
ARW ve JPG klasörlerin içindeki dosyaların aynı isimle ve aynı sayıda olduğunu faz ederek bunu yazdım.
Eyvallah bu şekilde oldu. Bunu batch yapıp çalıştığı klasörden dosya isimlerini okuyup sadece arw dosylarının olduğu klasörü parametre olarak vermeye çalışacağım. Onu yaptım mı tam istediğim gibi oluyor.
-
Sonunda powershell script ile yaptım. @hypnot1c 'e teşekkürler. nircmd olmadan olabilirdi ama tarih formatından dolayı olmadı. Aşağıdaki kodu .ps1 olarak system32 klasörüne attım.
$klasor1=$args[0]
$klasor2=$args[1]
Get-ChildItem $klasor1 * | ForEach-Object{
$nereden=$klasor2+'\'+$_.basename+'.arw'
$nereye=$_.FullName
c:\Programdata\nircmd.exe clonefiletime $nereden $nereye
}aşağıdaki şekilde kullanıyorum.
tarihal c:\jpg g:\DCIM\raw
aslında jpg'leri önce müşteri klasörüne değil de sabit bir yere atsam bu scripti de sağ tık gönder menüsüne koysam direkt parametre falan girmeden arw klasöründe gönder diyerek de çözebilirdim ama ps1 dosyasını send to klasöründe kopyalayınca görmüyor cmd ya da bat olması lazım. bat yapınca da bu komutlar çalışmıyor.
@Antikky sen de yapmış kadar oldun sağol. Tarih formatı olayını biliyorsan onu çözersek nircmd'ye gerek duymadan sadece get-childitem ile çözebiliriz.
Kodu kullanacaklara, farklı amaçla değiştireceklere not:
İlk parametredeki klasörden sadece dosya isimlerini alıp 2. parametredeki klasörde aynı ismin sonuna arw ekleyerek aynı dosyanın arw uzantılısından tarihi alıyoruz. $nereye değişkeni de ilk parametre ile belirtilen klasördeki jpg dosyasının tam yolunu veriyor. jpg olarak belirtmediğim için dosyanın ne olduğu farketmez sadece arw uzantısını değiştirerek farklı dosya türleri için de kullanılabilir. script'e klasör parametresi verirken klasör isminin sonuna \ eklememek gerekiyor.
DarkSkull tarafından 29/Kas/24 02:55 tarihinde düzenlenmiştir -
DarkSkull bunu yazdı
Sonunda powershell script ile yaptım. @hypnot1c 'e teşekkürler. nircmd olmadan olabilirdi ama tarih formatından dolayı olmadı. Aşağıdaki kodu .ps1 olarak system32 klasörüne attım.
$klasor1=$args[0]
$klasor2=$args[1]
Get-ChildItem $klasor1 * | ForEach-Object{
$nereden=$klasor2+'\'+$_.basename+'.arw'
$nereye=$_.FullName
c:\Programdata\nircmd.exe clonefiletime $nereden $nereye
}aşağıdaki şekilde kullanıyorum.
tarihal c:\jpg g:\DCIM\raw
aslında jpg'leri önce müşteri klasörüne değil de sabit bir yere atsam bu scripti de sağ tık gönder menüsüne koysam direkt parametre falan girmeden arw klasöründe gönder diyerek de çözebilirdim ama ps1 dosyasını send to klasöründe kopyalayınca görmüyor cmd ya da bat olması lazım. bat yapınca da bu komutlar çalışmıyor.
@Antikky sen de yapmış kadar oldun sağol. Tarih formatı olayını biliyorsan onu çözersek nircmd'ye gerek duymadan sadece get-childitem ile çözebiliriz.
Kodu kullanacaklara, farklı amaçla değiştireceklere not:
İlk parametredeki klasörden sadece dosya isimlerini alıp 2. parametredeki klasörde aynı ismin sonuna arw ekleyerek aynı dosyanın arw uzantılısından tarihi alıyoruz. $nereye değişkeni de ilk parametre ile belirtilen klasördeki jpg dosyasının tam yolunu veriyor. jpg olarak belirtmediğim için dosyanın ne olduğu farketmez sadece arw uzantısını değiştirerek farklı dosya türleri için de kullanılabilir. script'e klasör parametresi verirken klasör isminin sonuna \ eklememek gerekiyor.
hocam bitirmem gereken bi proje var, o yuzden mactan cikip windowsa gecemiyorum ama
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:\System32\powershellkomuddosyan.ps1" %1 %2
bat yapip dener misin olmasi gerek send to probleminin cozulmesi gerek -
Antikky bunu yazdı
hocam bitirmem gereken bi proje var, o yuzden mactan cikip windowsa gecemiyorum ama
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:\System32\powershellkomuddosyan.ps1" %1 %2
bat yapip dener misin olmasi gerek send to probleminin cozulmesi gerekEyvallah bu şekilde oldu. Pencere gelip anında kayboluyor powershell'den hata falan dönerse büyük ihtimalle onu da göremeyeceğim. 2 şekilde de kullanayım bir süre hangisi rahat gelirse onunla devam ederim. Send to için kodu da aşağıdaki şekilde değiştirdim. ps1 dosyaları farklı yerlerde.
$klasor1=$args[0]
Get-ChildItem $klasor1 * | ForEach-Object{
$nereden=$_.fullname
$nereye='D:\jpg\'+$_.basename+'.jpg'c:\Programdata\nircmd.exe clonefiletime $nereden $nereye
} -
DarkSkull bunu yazdıAntikky bunu yazdı
hocam bitirmem gereken bi proje var, o yuzden mactan cikip windowsa gecemiyorum ama
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:\System32\powershellkomuddosyan.ps1" %1 %2
bat yapip dener misin olmasi gerek send to probleminin cozulmesi gerekEyvallah bu şekilde oldu. Pencere gelip anında kayboluyor powershell'den hata falan dönerse büyük ihtimalle onu da göremeyeceğim. 2 şekilde de kullanayım bir süre hangisi rahat gelirse onunla devam ederim. Send to için kodu da aşağıdaki şekilde değiştirdim. ps1 dosyaları farklı yerlerde.
$klasor1=$args[0]
Get-ChildItem $klasor1 * | ForEach-Object{
$nereden=$_.fullname
$nereye='D:\jpg\'+$_.basename+'.jpg'c:\Programdata\nircmd.exe clonefiletime $nereden $nereye
}kodun sonuna Pause yazarak sen ekrani gormeden kapanmasini engelleyebilirsin, basar bi tusa kendin kaparsin. hata olup olmadigini kontrol edersin gozunle
-
Antikky bunu yazdı
kodun sonuna Pause yazarak sen ekrani gormeden kapanmasini engelleyebilirsin, basar bi tusa kendin kaparsin. hata olup olmadigini kontrol edersin gozunle
Pause koymuştum zaten ekrana yazdığın kodu aynen basıyor sonuna hangi klasörden gönder dediysem onun yolunu ekliyor. jpg klasöründen 1 dosya sildim hata falan vermedi. Büyük ihtimalle nircmd hata döndürmüyor o yüzden powershell de hata vermiyor.
-
javada arayüzlü bişey yazabilirim istersen, hata olursa görürsün vs .
-
yolbulucu bunu yazdı
javada arayüzlü bişey yazabilirim istersen, hata olursa görürsün vs .
Aslında hatalık bir durum olması da zor hafıza kartında makinenin çektiği fotoğraftan başka bir şey olmuyor zaten. Bilgisayardaki klasörde de raw formatından jpg'e dönüştürülmüş fotoğraflar oluyor isimleri değişmiyor. Arayüz olup butona basıp 2 klasörü seçersek daha rahat olur tabi. Boş vaktin olup can sıkıntısında uğraşayım dersen yapabilirsin. Sürekli kod yazan adam için en fazla 1-2 saatlik iş. Yaparsan kodları da buraya paylaş bari programlama forumu değiliz ama yine de programlama içeriği çok az.