批量循环文件

时间:2015-12-21 17:09:52

标签: loops batch-file cmd

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

Flow

我怎样才能做出这样的事情?

1 个答案:

答案 0 :(得分:0)

cmd.exe支持for循环,例如:

for %c in ( file*.txt ) do process %c

它支持相当多的选项,例如仅获取相关文件的基本名称,因此,如果(例如)您想要.txt文件并生成具有相同基本名称的文件,扩展名更改为.dat,这很容易做到。

在这种情况下,明显的意图(从多个评论中收集)是逐步浏览一些名为tweetNNN.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"}

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