如何使用批处理文件读取网站上托管的文本文件

如何使用批处理文件读取网站上托管的文本文件

我想使用批处理文件逐行读取网站上托管的文本文件的内容。例如:来自 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
::-------------------------------------------

相关内容