我想使用批处理文件逐行读取网站上托管的文本文件的内容。例如:来自 example.com/text.txt
我曾经尝试过
@echo off
for /f "tokens=*" %%A in (http://example.com/text.txt) do (echo%%A)
但是它寻找的是名为该文件的文件而不是 URL。
答案1
您需要先下载该文件。
假设您使用的是支持 powershell 的 Windows 并且正在使用批处理(否则只需使用 Powershell 并直接使用引号中的命令):
@echo off
powershell -Command "(New-Object Net.WebClient).DownloadFile('http://www.example.com/text.txt', 'txtfile.txt')"
for /f "tokens=*" %%A in (txtfile.txt) do (echo%%A)
第二行text.txt
将从指定的链接下载文件并将其保存txtfile.txt
在同一目录中。
编辑:如果您有支持 PowerShell 3.0 及更高版本的较新 Windows 版本,请查看@rahuldottech 的答案,它更简单、更快捷。
答案2
您可以使用以下代码:
powershell wget http://example.com/file.txt -OutFile file.txt
for /f "tokens=*" %%A in (file.txt) do (echo%%A)
我们用powershell下载文件,然后批量处理,使用wget
比创建对象然后下载文件要简单得多。
答案3
您需要先下载它。为此,您可以使用运行httpjs脚本:
call winhhtpjs.bat http://example.com/text.txt -saveTo c:\text.txt
for /f "usebackq tokens=*" %%A in ("c:\text.txt") do (echo%%A)
详细了解如何下载带有批处理文件的文件
答案4
您可以使用以下方式下载并读取文件内容Certutil 命令行就像这个批处理脚本:
@echo off
Color 0A
Title Download and read file contents with Certutil line command by Hackoo 2018
set "URL=http://www.example.com/text.txt"
for %%a in (%URL%) do Set "File=%%~nxa"
Set "DownloadFolder=%Temp%"
Call :Download "%URL%" "%DownloadFolder%\%File%"
Rem To read the contents of the text file downloaded in temp folder
for /f "tokens=*" %%A in ('Type "%DownloadFolder%\%File%"') do (echo %%A)
pause>nul & Exit
::--------------------------------------------
:Download <Url> <File>
certutil.exe -urlcache -split -f %1 %2 >nul
exit /b
::-------------------------------------------