我有一个批处理文件,可通过vpn远程连接到计算机,以使用robocopy下载文件。 目前,它要求每台机器的域凭据和IP地址。
我们有100多台机器,每次输入命令都需要输入IP,这非常令人讨厌。
我要查找的是在每行上都有一个带有IP地址的文本文件,并且批处理文件为每个IP地址运行其robocopy命令。用户只需输入一次域名凭证即可。
这就是我目前所拥有的:
@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
这可能是我使用googles帮助汇总的最高级批处理!
我已经研究过“/ F”代币“但是就我所知,那就好了。我通常喜欢自己制作这些东西,但有一次我被卡住了。
答案 0 :(得分:4)
从文本文件中读取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
)
答案 1 :(得分:1)
为了为文件中的每一行运行一次脚本,您可以使用以下代码包围脚本:
while read data; do
//your scipt goes here
done
$data
将包含文件中的一行(因此,IP地址)。
然后你就可以使用你的脚本:yourScript.sh < ipFile.txt