1

我是批处理编程的菜鸟,所以请原谅我这个简单的问题。

我在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 中执行此操作

4

1 回答 1

0

我已经成功地对此进行了测试:

for /F "delims=" %%i in ('dir /b "c:\treetagger\FSCB1\*.*"') do tag-french "%%i" > "%%i_out"

delims=即使文件名包含空格,我也必须使用该选项来保留文件名。
编辑:选项需要放在循环变量之前。

于 2016-07-27T14:53:23.053 回答