Bazı komut satırı sihrini bilmek her zaman iyidir, çünkü komutları bu şekilde işlemek bazen daha kolaydır.
Bu kılavuz, Windows Vista ve Windows 7'deki Forfiles komutunu gösterir (Güncelleme: Ayrıca Windows'un yeni sürümlerinde de bulunur).
Forfiles, isimleri, dosya uzantılarını ve yaşa göre dosyaları işleyebilir. Örneğin, 20 günden eski bir dizindeki tüm belgeleri veya belirli bir tarihten bu yana değiştirilmiş c: \ belgelerinde bulunan tüm belgeleri bulmak mümkündür.
Forfiles komutu, bu dosyaları silmek veya filtrelerle eşleşen tüm dosyaların bir listesini oluşturmak için işleme seçenekleriyle birleştirilebilir. Forfiles komutuna daha yakından bakalım.
FORFILES [/ P pathname] [/ M arama maskesi] [/ S] [/ C komutu] [/ D [+ | -] gg / AA / yyyy]
Açıklama: Bir dosya (veya dosya kümesi) seçer ve bu dosya üzerinde bir komut yürütür. Bu toplu işler için yararlıdır.
Parametre Listesi:
- / P yol adı Aramaya başlamanın yolunu gösterir. Varsayılan klasör geçerli çalışma dizinidir (.).
- / M searchmask Dosyaları bir searchmask'a göre arar. Varsayılan arama maskesi '*' dir.
- / S Dosyalara alt dizinlere yinelenmelerini söyler. "DIR / S" gibi.
- / C komutu Her dosya için yürütülecek komutu belirtir. Komut dizeleri çift tırnak içine alınmalıdır. Varsayılan komut "cmd / c echo @file" şeklindedir.
Komut dizesinde aşağıdaki değişkenler kullanılabilir:
- @dosya - dosyanın adını döndürür.
- @fname - dosya adını uzantısız döndürür.
- @ext - sadece dosyanın uzantısını döndürür.
- @path - dosyanın tam yolunu döndürür.
- @ relpath - dosyanın göreli yolunu döndürür.
- @isdir - Bir dosya türü bir dizin ise "TRUE", dosyalar için "FALSE" döndürür.
- @fsize - dosyanın boyutunu bayt olarak döndürür.
- @fdate - dosyanın son değiştirilme tarihini döndürür.
- @ftime - dosyanın son değiştirilme zamanını döndürür.
Komut satırına özel karakterler eklemek için, karakterin onaltılık kodunu 0xHH formatında kullanın (ör. Sekme için 0x09). Dahili CMD.exe komutları önce "cmd / c" ile verilmelidir.
/ D date "dd / MM / yyyy" biçimini kullanarak, belirtilen tarihte (+) 'den büyük veya ona eşit veya (-)' den küçük veya ona eşit olan dosyaları seçer; veya (+) geçerli tarihe artı "dd" güne eşit veya daha büyük veya (-) geçerli tarih eksi "dd" günlere eşit veya (-) eşit veya daha büyük değiştirilmiş bir tarihe sahip dosyaları seçer. Geçerli bir "dd" gün sayısı, 0 - 32768 arasında herhangi bir sayı olabilir. Belirtilmezse "+" varsayılan işaret olarak alınır.
/? Bu yardım mesajını görüntüler. Bu yardım dosyası forfiles /? Komutunu girerek açılabilir. komut isteminde. Windows-R tuşlarına basın, cmd yazın ve komut satırını Windows'ta başlatmak için enter tuşuna basın.
forfiles /P c:\test\ /M .doc /S /D -10
komutu, forfiles /P c:\test\ /M .doc /S /D -10
dizinini ve tüm alt dizinlerini 10 günden eski .doc uzantılı dosyalar için arar.
Bir dizinin izlediği / p parametresi, başlangıç dizinini tanımlar, / s, aramada alt dizinleri içerir, / m, girilen dizgiyi temel alarak dosyaları ve klasörleri filtreler ve / D, tarih veya zaman aralığını tanımlar.
/ C komutu, daha fazla bulunan dosyaları işlemek için kullanılır. Örneğin, aşağıdaki komutu çalıştırmak için kullanılabilir: /C "cmd /c echo @fname" > test.txt
, bulunan her bir dosyanın ismini ekler ve sonuçları aynı dizinde text.txt içerisine kaydeder.
Tam komut daha sonra şöyle görünür forfiles /P c:\test\ /M .doc /S /D -10 /C "cmd /c echo @fname" > test.txt
Başka bir olasılık da aramayla eşleşen dosyaları silmek, bu komut /C "cmd /c del @File
Ancak, yalnızca doğru dosyaların silindiğinden emin olmak için delete komutunu vermeden önce, çıktının test edilmesi önerilir. Deneyimli kullanıcılar forfilleri düzenli olarak yürütmek için bir toplu iş dosyası oluşturabilir.