Perl более мощный, чем пакетные сценарии, но поскольку Perl не включен в Windows, он кажется излишним для таких задач, как эта. Это должно, например, работать:
FOR /R C:\hello\ %%G IN (*.txt) DO "c:\Program Files\7-Zip\7z.exe" a %%G.zip %%G && del %%G
Обратите внимание, что вы не можете сделать это непосредственно в приглашении, вы должны сохранить его как файл .bat. Конечно, также возможно разрешить пользователю указывать пути и расширения с помощью командной строки следующим образом:
FOR /R %1 %%G IN (%2) DO "c:\Program Files\7-Zip\7z.exe" a %%G.zip %%G && del %%G
Более подробную информацию о FOR и других командах командной строки Windows можно найти здесь: http://ss64.com/nt/
Это будет тогда выполняться с:
test.bat C:\Hello\ *.txt
РЕДАКТИРОВАТЬ: Это, очевидно, требует, чтобы у вас был установлен 7-Zip, но совершенно очевидно, где изменить код, если вы хотите использовать другую молнию. Также имейте в виду, что всегда будьте предельно осторожны при экспериментировании с такими скриптами, как этот. Одна небольшая ошибка может привести к удалению большого количества файлов, поэтому всегда проверяйте ее на копии файловой системы, пока не убедитесь, что она работает.