Bir dizindeki tüm dosyalarda (mümkünse alt dizinlerde komut çalıştırmak için Komut Satırı döngüsü


14

Bunun oldukça kolay olduğunu düşünüyorum, ancak Windows'un komut satırı yardımcı programları ile sıfır deneyimim var. Temel olarak, bir dizindeki tüm dosyaları yinelemem gerekiyor (alt dizinleri yapabiliyorsa harika, ama gerekirse 5 dizinin her birinde çalıştırabilirim), değişken olarak adı alıyorum ve çalıştırmasını istiyorum

"C:\Program Files\ImageMagick-6.7.6-Q16\convert.exe" -compress LZW 
   -colorspace Gray -colors 32 file_var file_var

Gördüğüm döngü için istemi bir komut Dinamik adı dosyaları . Bunu kullanabilir miyim (SET ... ile yukarıdaki komutu değiştirerek)? Söz konusu bilgisayardaki alan sınırlı değildir, bu nedenle bu aşamada çalıştırmadan önce bir yedekleme yapamam (kötü, biliyorum).


Robert, kendi sorunuzu cevaplamayı başardıysanız, lütfen kendi cevabınızı ekleyin ve doğru olarak kabul edin.
Julian Knight

Tam olarak istediğiniz şey olduğunu sanmıyorum, sonu ( "%%f" "%%f") sadece dosya adını (tam yol ile) iki kez yerleştirecektir. Muhtemelen "%%f" "%%~dpnf.gif"çıktı dosyasının uzantısını değiştirmek gibi bir şey kullanmak istersiniz .
Synetech

@JulianKnight - teşekkürler, aslında ne zaman geri dönmeye çalıştım, ama bunu yapmak için zorla beklemek olduğunu düşünüyorum. O zamandan beri soruyu unuttum.
Robert

Yanıtlar:



5

PowerShell'i açın

$files = Get-ChildItem -Recurse 
foreach ($file in $files){
    c:\windows\System32\notepad.exe $file.FullName
}

Get-ChildItem, dosyaların bir listesini geçerli alt dizinden nesne olarak alır. "-recurse" alt dizinleri içerecektir. Bu işlem $ Files dizisine yerleştirir.

Foreach döngüsü her dosya arasında geçiş yapar ve her dosyaya tam dosya adı yolunun komut satırı bağımsız değişkeniyle not defterini çağırır.

DİKKAT: Yukarıdaki kodu, her dosya için bir Not Defteri örneği açacağı için birkaç küçük metin dosyası içeren bir dizinde test edin.

Bu size ne yapmak istediğiniz hakkında nasıl bir fikir vermeli.

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.