Windows bat文件:下载&比较内容

时间:2015-02-04 17:18:30

标签: windows batch-file wget

我试图从包含字符串"空"的网络服务中下载文件。或者是其他东西。如果"为空",我想删除该文件,否则应移动并重命名。

为实现这一目标,我使用wget.exe下载文件,这非常有效。

这就是我所拥有的:

wget "myurl.com/webservice" -O output.txt    

@echo off
set /p Build=<output.txt    

if %Build% == "empty" (ECHO "EMPTY")    

PAUSE

测试场景:一个名为output.txt的文件,其中String为空。

如何修改和阅读内容?使用set / p不起作用。

提前谢谢你。 最好

2 个答案:

答案 0 :(得分:2)

@echo off
for /f "delims=" %%a in (output.txt) do echo("%%a"

应该准确地显示文件中包含的内容(假设它是一行 - 如果有多行,这将显示所有非空行...) { {1}}。

此字符串必须与比较它的字符串完全匹配,因此

"contained in quotes"

请注意,可能会出现杂散空格,不清楚是否正在使用引号来分隔文件中包含的文字字符串,并且在那里&#39; sa case-mismatch then {{ 1}}是必需的(/ i是&#34;不区分大小写的&#34;开关)

答案 1 :(得分:1)

您似乎在问两件不同的事情。如果你要做的只是移动一行读取empty的文件,你可以使用findstr。成功时,删除该文件。失败后,移动它。

wget "myurl.com/webservice" -O output.txt

@echo off

findstr /i "^empty$" output.txt >NUL && (
    del output.txt
) || (
    move output.txt "path\to\file.txt"
)

如果您想在移动之前操作output.txt的内容,我们需要有关您想要更改的内容的更多详细信息。如果你想逐行阅读output.txt的内容,Magoo建议for /f循环是最好的方法。