我是批量编程的菜鸟,请原谅我这个简单的问题。
我在 C:\ TTG \ FSC 中有一个名为FSC的文件夹,其中有成千上万的文本文件,如 1_A.txt 2_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
我可以在ubuntu中写这个:
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
但我想在Windows中学习如何做到这一点
答案 0 :(得分:0)
我成功地测试了这个:
for /F "delims=" %%i in ('dir /b "c:\treetagger\FSCB1\*.*"') do tag-french "%%i" > "%%i_out"
我必须使用delims=
选项来保留文件名,即使它们包含空格
编辑:需要在循环变量之前放置选项。