Loops 成批循环浏览文件

Loops 成批循环浏览文件,loops,batch-file,cmd,Loops,Batch File,Cmd,我使用脚本将txt文件的内容存储在变量中。现在我有很多这样的文件,我想在for循环中检查每一个文件 Pseudo code: for (i = 1, i < 100, i += 1) ( set var=file+i.txt [do stuff with file] ) 伪代码: 对于(i=1,i

我使用脚本将txt文件的内容存储在变量中。现在我有很多这样的文件,我想在for循环中检查每一个文件

Pseudo code:
for (i = 1, i < 100, i += 1) (
set var=file+i.txt
[do stuff with file]
)
伪代码:
对于(i=1,i<100,i+=1)(
设置var=file+i.txt
[处理文件]
)

如何制作这样的东西?

cmd.exe支持
for
循环,如:

for %c in ( file*.txt ) do process %c
它支持相当多的选项,例如只获取相关文件的基本名称,因此,如果(例如)您想要创建
.txt
文件,并生成一个具有相同基本名称且扩展名更改为(例如,
.dat
)的文件,这非常容易做到

在这种情况下,明显的意图(从多个注释中收集)是逐步浏览一些名为
tweetnn.txt
的文件,其中
NNN
是从1到100的数字。然后,该文件的内容(不仅仅是名称)将作为请求中的数据在cURL命令行上传递

最简单的方法可能是在cURL命令行中使用
@
字符,如下所示:

for /l %c in (1, 1, 100) do echo "language=english&text=" > stage.txt 
    && copy stage.txt + tweet%c.txt 
    && curl -d@stage.txt text-processing.com/api/sentiment/ >> results.txt
(注意:我已经用换行符格式化了它,但它需要作为单行输入)

我使用几个文件进行了一个快速测试:

tweet1.txt: "what complete crap. hated every minute"
tweet2.txt: "Best movie of the years. Loved it"
在包含这两个文件的目录中运行上一个命令会生成一个
results.txt
包含:

{"probability": {"neg": 0.82811145456964252, "neutral": 0.18962854533013332, "pos": 0.17188854543035748}, "label": "neg"}
{"probability": {"neg": 0.10467714372495518, "neutral": 0.080508941181180751, "pos": 0.89532285627504482}, "label": "pos"}

这似乎与文件的内容非常吻合,我认为我们可以安全地得出结论,文本已按要求进行了分析。

但如何将文件存储在变量中?您可以将文件名存储在变量中,如
set file\u name=%c
(我猜您不想尝试将文件的全部内容填充到环境变量中——除非该文件很小,否则这将是一个非常糟糕的主意)。我确实希望这样做,因为该文件非常小(它是tweet),这些文件称为“tweet(x)”其中x是保存的tweet数。知道我如何循环浏览这些tweet并将文件内容保存在变量中以便在脚本中进一步使用吗?我不知道有什么方法可以做到这一点,至少在不编写实际程序的情况下(例如,使用C或C++之类的语言)。您通常最好编写一些东西来处理文件内容。我使用set var=tweet.txt来选择文件并设置/p var=