如何获取批处理文件以接受来自txt文件的输入?

Dre*_*Dre 8 batch-file

我想在多台计算机上的批处理文件中运行命令.

例如:

@echo off
ping %1
pause
exit
Run Code Online (Sandbox Code Playgroud)

如果这个批处理文件被称为pingme.bat并且我输入pingme.bat yahoo.com那么它将ping yahoo.com.我的问题是我希望批处理文件接受来自文本文件的输入.

像这样pingme.bat computers.txt,它将读取文件中列出的计算机的名称,并执行我指定要执行的任何命令.

%1 接受我在输入批处理文件时指定的输入,现在我想批处理文件读取txt中的行并执行它.

文本中的行以列表形式使用,不使用逗号或任何内容.

Mic*_*nco 9

一种方法是将URLS放在一个文本文件中,如下所示:

www.google.com
www.yahoo.com

然后运行以下批处理

for /f %%a in (%1) do (
echo Pinging %%a...
ping %%a
)
Run Code Online (Sandbox Code Playgroud)

并从cmd运行它作为pingme.bat URLs.txt

或者,您可以在批处理中指定文本文件的名称,并在不使用参数的情况下运行它

for /f %%a in (URLs.txt) do (
echo Pinging %%a...
ping %%a
)
Run Code Online (Sandbox Code Playgroud)

这是另一种方法

此特定批次将从列表中提取,如果ping成功,则写入output.txt

@ECHO OFF
SET output=output.txt
IF EXIST "%output%" DEL "%output%"
FOR /f %%a IN (URLs.txt) DO (
    CALL :ping %%a

)
GOTO :EOF

:ping
ping -n 1 %1 | find "Approximate round trip" >NUL || ECHO %1>>"%output%"
Run Code Online (Sandbox Code Playgroud)

希望这能让你朝着正确的方向前进.

  • 为什么SETLOCAL/ENDLOCAL在第一个循环内?为什么在第二个循环中调用子程序?在这两种情况下,你都会放慢速度,因为我无法理解. (2认同)