Я ноб в пакетном программировании, поэтому извините меня за простой вопрос.Пакет: как запустить программу для всех файлов в папке и как создать выходной файл для результата с использованием исходного имени файла?
У меня есть папка под названием FSC в C: \ TTG \ FSC, с тысячами и тысячами текстовых файлов называются как 1_A.txt2_A.txt и т.д. Я хотел бы запустить программку и вывести его в другой файл, переименовав оригинал (например, 1_A.txt будет иметь выходной файл 1_A_out.txt). Я уже тестировал запуск программы на 1 файл, и он работает (просто записывая в командной строке tag-french filename).
Итак, как я могу создать цикл for для анализа каждого файла в папке и создания выходных файлов?
Я попытался это, но он не работает
for /F %%i in ('dir /b "c:\treetagger\FSCB1\"') do
tag-french %%i > %%i_out
я могу это сделать в убунту это пишу:
for l in /home/sp/Desktop/FSCM5/*
do
echo $l
filename=$(basename "$l")
extension="${filename##*.}"
filename="${filename%.*}"
filename=($(echo "/home/sp/Desktop/FSCM5TTG/"$filename"_"ttg"_."$extension))
echo $filename
sh /home/sp/Desktop/TTG/cmd/tree-tagger-french $l > $filename
done
Но я хотел бы узнать, как это сделать в окнах слишком
Это цикл 'FOR/F' для - перечислить все (соответствующие) файлы в папке, возможно, рекурсивно и запустить на них команду. Введите 'FOR /?', Чтобы получить синтаксис команды. – user1016274
Я пытался это сделать, но он не работает: для/F %% i in ('dir/b "c: \ treetagger \ FSCB1 \"') do tag-french %% i>% % i_out – Jurafsky
Что делать, если в каталоге уже есть файлы с именем '* _out.txt'? – aschipfl