windows 批处理按照配置信息从主机不同目录获取文件保存在windows

1. 首先是执行的主脚本

echo off
rem 配置文件目录
set cfgDir=%cd%\cfg
set binDir=%cd%\bin
set bakInI=%cfgDir%\bakLabel.ini

if not exist %bakInI% goto NOOK

rem 按照时间建立当天的目录
set currDate=%date:~,4%%date:~5,2%%date:~8,2%
md backup\%currDate%


for /f "tokens=1,2 delims=," %%i in (%bakInI%) do (
rem 调用ftp备份
call %binDir%\process %%i %cfgDir% %currDate%

)
goto :eof


:NOOK
echo 配置文件不正确
exit



2. 然后是真正处理批量ftp的脚本

@echo off
rem 本地备份根目录
set homedir=%2
set backdir=%2\..\backup\%3


if not exist %homedir% goto :NODIR
if not exist %backdir% goto :NODIR


rem 常量声明
set user=USER
set pwd=PWD
set host=HOST
set dir=DIR
set tag=*
set end=END


rem 配置文件
set path=%1
set cfgFile=%homedir%\%path%.cfg
if not exist %cfgFile% goto NOFILE


rem 执行计划
set planFile=%homedir%\exe.plan
setlocal enabledelayedexpansion
for /f "delims== tokens=1,2,3" %%i in (%cfgFile%) do (
if %%i==%host% (echo open %%j>%planFile%)
if %%i==%user% (echo %%j>>%planFile%)
if %%i==%pwd% (echo %%j>>%planFile%)
if %%i==%dir% (echo cd %%j>>%planFile% )
if %%i==%tag% (echo get %%j>>%planFile% )
)
echo bye>>%planFile%


rem 哈哈哈哈哈哈
set sysBinRoot=%SystemRoot%\System32
pushd %backdir%
%sysBinRoot%\ftp -i -s:%planFile%
popd	
del %planFile%
goto :eof


rem 配置文件不存在不能远程取文件
:NOFILE
echo 配置文件"%1"不存在,请查证
pause
exit


:NODIR
echo 目录不正确
pause 
exit



3. 对于配置文件,有两个。一个是总的主机配置列表,另一个是详细的文件和主机路径的配置信息。

比如主机配置列表中有内容:main, 那么回对应的有另一个配置文件 main.cfg.其中main.cfg的配置内容如下:

START
HOST=主机ip
USER=主机用户
PWD=主机密码


DIR=第一个目录
*=文件1
*=文件2
...

DIR=第二个目录
*=文件1
......


DIR=第三个目录
*=文件1

END







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值