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

Windows bat file: Download & Compare Content

我正在尝试从包含字符串 "empty" 或其他内容的网络服务下载文件。如果"empty",我要删除文件,否则应该移动并重命名。

为此,我使用 wget.exe 下载文件,效果很好。

这是我的:

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

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

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

PAUSE

测试场景:名为 output.txt 的文件,其中的字符串为空。

如何修改和阅读内容?使用 set/p 无效。

提前谢谢你。 最佳

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

应该向您准确显示文件中包含的内容(假设它是一行 - 如果有多于一行,这将显示所有非空行...)但是 "contained in quotes".

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

for /f "delims=" %%a in (output.txt) do if "%%a"=="empty" (echo EMPTY)

请注意,可能会出现杂散空格,不清楚引号是否按字面意思使用或分隔文件中包含的文字字符串,如果大小写不匹配,则需要 if /i "%%a"=="empty"... (/i 是 "case-insensitive" 开关)

您似乎在问两个不同的问题。如果您只想移动一个包含 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 循环是最好的方法。