2015-12-21 136 views
0

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

Pseudo code: 
for (i = 1, i < 100, i += 1) (
set var=file+i.txt 
[do stuff with file] 
) 

我该怎么做这样的事情?

回答

0

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

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

它支持相当多的东西像只得到有关文件的基本名称的选项,因此,如果(举例来说)你想到.txt文件并生成一个具有相同基本名称和扩展名的文件,例如.dat,这很容易做到。

在这种情况下,明显的目的是从一些名为tweetNNN.txt的文件中跳过,其中NNN是从1到100的某个数字。然后该文件的内容(不仅仅是名称)是作为请求中的数据传递到cURL命令行。

要做到这一点,最简单的方法可能是使用@人物卷曲命令行上,这样的事情:

for /l %c in (1, 1, 100) do echo "language=english&text=" > stage.txt 
    && copy stage.txt + tweet%c.txt 
    && curl [email protected] text-processing.com/api/sentiment/ >> 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"} 

这似乎是一个:

tweet1.txt: "what complete crap. hated every minute" 
tweet2.txt: "Best movie of the years. Loved it" 

中包含这两个文件生成一个results.txt包含目录中运行前一个命令与文件的内容非常接近,我认为我们可以安全地得出结论,文本是按照需要进行分析的。

+0

但是,如何将文件存储在变量中? – JanJansen

+0

您可以将文件*名称*存储在像'set file_name =%c'这样的变量中(我猜你不想将文件的全部内容填充到环境变量中 - 除非文件是微小的,这将是一个非常糟糕的主意)。 –

+0

我其实很想这么做,因为文件非常小(这是一条推文) 这些文件被称为“tweet(x)”,其中x是保存的推文数量。任何想法如何通过它们循环并将文件的内容保存在变量中以便在脚本中继续使用? – JanJansen