Batch file 如何读取文本文件的内容并为每行运行命令?

Batch file 如何读取文本文件的内容并为每行运行命令?,batch-file,Batch File,我有一个批处理文件,可以通过vpn远程连接到机器,使用robocopy下载文件。 目前,它要求为每台计算机提供域凭据和IP地址 我们有100多台机器,每次运行一个命令都要输入一个IP,这让人非常厌烦 我试图寻找的是在每一行上都有一个带有IP地址的文本文件,并让批处理文件为这些IP地址中的每一个运行robocy命令。用户只需输入其域凭据一次 这就是我目前拥有的: @ECHO OFF SET /P ipaddress= Please enter an IP address SET /P siten

我有一个批处理文件,可以通过vpn远程连接到机器,使用robocopy下载文件。 目前,它要求为每台计算机提供域凭据和IP地址

我们有100多台机器,每次运行一个命令都要输入一个IP,这让人非常厌烦

我试图寻找的是在每一行上都有一个带有IP地址的文本文件,并让批处理文件为这些IP地址中的每一个运行robocy命令。用户只需输入其域凭据一次

这就是我目前拥有的:

@ECHO OFF

SET /P ipaddress= Please enter an IP address
SET /P sitenum= Please enter the store number
CLS
SET /P user= Please enter your domain username
SET /P pass= Please enteer your domain password
CLS

Set filedate=%date:/=%


NET USE \\%ipaddress%\IPC$ /u:DOMAIN\%user% %pass% 

ECHO Copying Dataset...
Robocopy "\\%ipaddress%\C$\ProgramData\App\Data" /Z /S "D:\Transfer Files\%sitenum%\%filedate%\Data" /eta
ECHO Done!

ECHO Copying ControlPoint Server Data....
Robocopy "\\%ipaddress%\C$\ProgramData\App\MoreData" /Z /S "D:\Transfer Files\%sitenum%\%filedate%\More Data" /eta
ECHO Done!

NET USE \\%ipaddress%\IPC$ /D
这可能是最先进的一批,我用谷歌帮助放在一起


我已经研究过“/F”代币,但这是我所能想到的。我通常喜欢自己建造这些东西,但有一次我被卡住了。

从文本文件中读取IP:

for /f "delims=" %%a in (IPs.TXT) do (
    NET USE \\%%a\IPC$ /u:DOMAIN\%user% %pass% 
    ECHO Copying Dataset...
    Robocopy "\\%%a\C$\ProgramData\App\Data" /Z /S "D:\Transfer Files\%sitenum%\%filedate%\Data" /eta
    ECHO Done!

   ECHO Copying ControlPoint Server Data....
   Robocopy "\\%%a\C$\ProgramData\App\MoreData" /Z /S "D:\Transfer Files\%sitenum%\%filedate%\More Data" /eta
   ECHO Done!

   NET USE \\%%a\IPC$ /D
)

从文本文件读取IP:

for /f "delims=" %%a in (IPs.TXT) do (
    NET USE \\%%a\IPC$ /u:DOMAIN\%user% %pass% 
    ECHO Copying Dataset...
    Robocopy "\\%%a\C$\ProgramData\App\Data" /Z /S "D:\Transfer Files\%sitenum%\%filedate%\Data" /eta
    ECHO Done!

   ECHO Copying ControlPoint Server Data....
   Robocopy "\\%%a\C$\ProgramData\App\MoreData" /Z /S "D:\Transfer Files\%sitenum%\%filedate%\More Data" /eta
   ECHO Done!

   NET USE \\%%a\IPC$ /D
)

要为文件中的每一行运行一次脚本,您可以使用以下内容围绕脚本:

while read data; do
    //your scipt goes here
done
$data
将包含文件中的一行(即IP地址)


然后您可以像这样使用脚本:
yourScript.sh

,以便为脚本周围的文件中的每一行运行一次脚本:

while read data; do
    //your scipt goes here
done
$data
将包含文件中的一行(即IP地址)


然后你可以像这样使用你的脚本:
yourScript.sh

你是指Unix shell脚本(bash),我想,OP意味着批处理(Windows命令shell脚本)。你是指Unix shell脚本(bash),我想,OP意味着批处理(Windows命令shell脚本)谢谢你,恩多,我来试试。谢谢你,恩多,我来试试。