Цикл командного рядка для запуску команди на всі файли в каталозі (плюс підкаталоги, якщо це можливо


14

Я припускаю, що це зробити досить просто, але я маю нульовий досвід роботи з утилітами командного рядка Windows. В основному, мені потрібно перебирати всі файли в каталозі (чудово, якщо він може робити підкаталоги, але я можу запустити його в кожному з 5-ти каталогів, якщо це необхідно), отримайте ім'я як змінну і запустити його

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

Я бачив динамічні файли імен у командному рядку для циклу . Чи зможу я це використати (поміняючи SET ... вищевказаною командою)? Простір на комп’ютері, про який йде мова, є обмеженим, тому я не можу виконати резервну копію до запуску цього на цьому етапі (погано, я знаю).


Роберте, якщо вам вдалося відповісти на власне запитання, будь ласка, додайте власну відповідь і прийміть її як правильну.
Джуліан Найт

Я не думаю, що це зовсім те, що ви хочете, кінець його ( "%%f" "%%f") просто розмістить ім'я файлу (з повністю кваліфікованим шляхом) двічі. Можливо, ви хочете скористатися чимось на зразок "%%f" "%%~dpnf.gif"змінити розширення вихідного файлу.
Synetech

@JulianKnight - спасибі, я насправді намагався повернутись назад, але, думаю, було змушене зачекати, щоб це зробити. З тих пір забув про питання.
Роберт

Відповіді:



5

Відкрийте PowerShell

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

Get-ChildItem отримує список файлів як об'єктів з поточного підкаталогу. "-recurse" буде включати підкаталоги. Це розміщує його у масиві $ Files.

Цикл foreach проходить цикл через кожен файл і викликає блокнот з аргументом командного рядка повного шляху імені до кожного файлу.

ПОПЕРЕДЖЕННЯ: Перевірте вищевказаний код у каталозі з кількома невеликими текстовими файлами, оскільки він відкриє примірник блокнота для кожного файлу.

Це має дати вам уявлення про те, як рухатись до того, що ви хочете зробити.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.