addhead | addtail | count | difflines | filter | head | joinlines | linelen | load | ofilter | perline | printloop | replace | run | runloop | snapto | sort | strings | tail | xed | xex | xreplace | Команда: run Выполнение самоопределяемой команды для нескольких файлов в дереве каталогов
$file - введите полное имя файла, включая путь
$quotfile или $qfile - так же, как $file, но с кавычками "" вокруг
$relfile или $qrelfile - вставьте относительное имя файла, без пути
$base или $qbase - относительное базовое имя файла, без расширения
$ext или $qext - расширение имени файла. foo.bar.txt имеет расширение .txt
$path или $qpath - путь (каталог) без имени файла
$relpath или $qrelpath - подпуть относительно стартовой папки
$ufile или $upath - принудительное использование косой черты "/" в стиле Unix при выводе
$qufile или $qupath - объединение слэшеров и кавычек Unix
$since или $qsince - с опцией -sincediff: имя ссылочного файла
$text или $qtext - одна запись вводимого текста, аналогичная $file
$targ или $qtarg - с -tomake: имя целевого файла
Всегда отдавайте предпочтение формам 'Q', а не формам без кавычек: как только появляется имя файла содержащие пробелы, например, X:\the src files\test one.txt, вам понадобятся кавычки, или вам придется вручную вставлять экранированные кавычки \" или \q (см. 3-й пример ниже). Вы также можете использовать $quotrelfile, $quotsince $quottext для большей ясности. Если вы укажете только $path выражения, будут обрабатываться только каталоги. Для команд из одной цепочки слов, таких как "+run vi", "$qfile" добавляется автоматически. Дальнейшая поддержка шаблонов - - ПАРАМЕТРЫ yes - реально выполнить. По умолчанию это просто симуляция того, что будет сделано. Вы также можете ввести run. (с точкой) в качестве быстрого подтверждения
nohead - не отображает текст информации [simulating:]
noinfo - если вы не используете $text, sfk проверяет имена входных файлов1. Если они содержат пробелы, но в команде не указаны кавычки. 2. Если кажется, что они используют неправильный символ разделителя пути. В обоих случаях выводится напоминание. Если вы знаете, что ваша команда не нуждается в изменениях, добавьте -noinfo или используйте $text вместо $file quiet - не выводит команды перед выполнением
relnames - удаляет имена корневых каталогов из имен файлов
i[files] - обработать список текстов или имен файлов из stdin
idirs - обработать список имен каталогов из стандартного ввода.В стандартном вводе строки примечаний '#' и пустые строки пропускаются. Примечание: «sfk.exe list.txt» поддерживает только 4 КБ для файла list.txt под Windows. «type list.txt | sfk.exe» поддерживает неограниченную длину потока. nofile[names] - с цепочкой, не создает записи имен ":file"
printcmd - вывести полную команду, которая выполняется, в консоль
stoprc=n - остановить обработку, если команда возвращает код возврата >= n.Формат командной строки С опцией -SPAT поддерживаются шаблоны косой черты, такие как \t \q \xnn. Из-за синтаксических ограничений командной оболочки это может помочь. - использовать \q вместо \" (позволяет избежать неправильного подсчета кавычек в оболочке) - использовать \x26 вместо & (если амперсанд ведет себя неожиданно) Расширение закавыченных переменных При использовании переменных sfk, содержащих имена файлов, например Использование -spat и \q может вызвать конфликты, если само имя файла содержит известные шаблоны косой черты, например \t в файле «mydir\thebar.txt». Чтобы избежать этого, вы можете использовать (только при запуске sfk):
Многострочные параметры в кавычках поддерживаются в сценариях с использованием обрезки параметров. Временные или постоянные выходные файлы Если выходные данные запуска подвергаются постобработке с помощью цепочки команд, например run ... +filter, sfk создает временные файлы для сбора вывода. По умолчанию эти файлы удаляются после завершения выполнения. Укажите -to targetdir\$file, чтобы записать выходные данные команды в постоянный целевой набор файлов. Необходимые каталоги создаются автоматически. -to принимает ту же маску, что и сам запуск, например, -в "mydir\$path\$base.tmp" по умолчанию стандартный вывод и стандартный поток ошибок записываются в файл. Добавьте 2>nul к вашей команде, чтобы удалить поток ошибок. Коды возврата для переменных Переменная sfk run.lastrc содержит код возврата вызванной внешней программы. Если было обработано несколько файлов, он содержит только код возврата последнего файла. Примечания по цепочке команд
sfk run "...$path..." +nextcmd: будет передавать каталоги, а не имена файлов. СМОТРИТЕ ТАКЖЕ
ПРИМЕРЫ
Запустите внешнюю программу MyProg.exe и сообщите ей код возврата.
Это просто покажет все имена файлов из «mydir». Для этих файлов не выполняется никакая команда, поэтому ничего плохого не происходит. Почти наверняка вы заметите, что включено слишком много файлов. Возможно, вам придется добавить «-nosub», чтобы исключить подпапки, или добавить дополнительную информацию о выборе файла, например:
Это имитирует копию всех изображений из mydir в d:\pic, добавляя к их имени префикс «small_» и гарантируя, что все расширения целевых файлов будут только «.jpg». Пример: На этот раз мы воспользуемся другим подходом и начнем с "sfk list"
Это может привести к следующему результату: pack\Lemon.class pack\Curry.class pack\Yet.class pack\Another.class pack\One.class Наша цель состоит в том, чтобы превратить эти строки в команды вида:
Как же этого достичь ?
При этом все косые черты "\" заменяются точкой ".", а ".class" удаляется. pack.Lemon pack.Curry pack.Yet pack.Another pack.One
Результирующий результат - смоделированный предварительный просмотр - теперь выглядит следующим образом: javap "pack.Lemon" javap "pack.Curry" javap "pack.Yet" javap "pack.Another" javap "pack.One"
|