Кажется, что проблема VSMDI является известной ошибкой и была вокруг начиная с Системы Команды VS2005 , но это имеет не ясную фиксацию пока еще. Другая причина НЕ использовать Тест MS.
блог MSDN детали , как выполнить модульные тесты без файлов .
VSMDI
find . -name "filename*" -exec perl myscript.pl '{}' \;
find . -path "\*filename\*" -exec perl myscript.pl {} \;
править: звездочки не использовались, разметка здесь не нужна
for i in $(\ls -d filenames)
do
perl myscript.pl $i
done
Обратная косая черта перед командой 'ls' предназначена для временного отключения любых псевдонимов.
HTH
И если у вас есть пробелы в именах файлов, используйте старый резервный
find . -maxdepth 1 -print0 | xargs -0 perl myscript.pl
Один лайнер:
$ для файла в имени файла1 имя_файла2 имя_файла3; сделать perl myscript $ file; сделано
Вместо списка имен файлов, разделенных пробелами, вы также можете использовать подстановочные знаки, например:
$ для файла в * .txt * .csv; сделать perl myscript $ file; сделано
В bash:
files=`ls -1 *`
for $file in $files;
do
perl myscript.pl $file;
done
FILES = " ключевое слово "
для f в "$ FILES" делать perl myscript.pl $ f сделано
Я лично использую оболочку zsh, которая дает вам очень хороший способ рекурсивно запускать команду в наборе подкаталогов. Он также позволяет вам изменить суффикс файла, что удобно при использовании lame для создания файлов MP3 из файлов .wav:
для i в ** / *. Wav; lame $ i $ i: r.mp3
Вы также можете перенаправить вывод одной команды в другую, что я часто использую, когда загружаю несколько файлов BitTorrent и хочу увидеть процент каждой загрузки завершено:
для i в ** / *. txt; grep -H процентов $ i | хвост -1