关于windows批处理的一些小案例

以下是我个人在工作中编写的批处理文件,给自己做个记录,写的不好,仅供参考?

  1. 发送本地的test.bat文件到远程主机的C盘根目录
@echo off
setlocal enabledelayedexpansion
set REMOTE_ADDR=192.168.1.5
set PWD=password
set USER=Administrator 
net use \\!REMOTE_ADDR!\IPC$ /u:!USER! "!PWD!"
copy C:\Users\jcy08\Desktop\test.bat \\!REMOTE_ADDR!\c$\ /y
rem Admin$为系统根目录
  1. 创建一个host.txt文件,编译以下内容,不同主机&同目录
192.168.1.101&Users\Administrator.P101\Desktop
192.168.1.102&Users\Administrator\Desktop
192.168.1.103&Users\Administrator\Desktop
#192.168.1.104&Users\Administrator\Desktop

扫描host.txt内的文件,向每台主机发送响应的数据的指定的目录

@echo off
setlocal enabledelayedexpansion
set PWD=password
set FILE=ROOT.war
set folder=test\project\
for /F "eol=# tokens=1,2 delims=&" %%a in (host.txt)  do (
echo -------------%%a--------------
echo a=%%a  b=%%b
net use \\%%a\ipc$ "%PWD%" /user:"Administrator"
if "%FILE%"=="testFolder" xcopy %FILE% \\%%a\c$\%%b\%folder%%FILE%\ /E /Y
if "%FILE%"=="ROOT.war" xcopy %FILE% \\%%a\c$\%%b\%folder% /Y
net use \\%%a\ipc$ /delete
)
pause
  1. 这里这里是tomcat项目备份部署的过程。主要流程: 关闭tomcat -> 备份重命名项目 -> 拷贝新项目 -> 重启tomcat
@echo off
setlocal
set file1=ROOT.war
set file2=project
set file3=ROOT
set tomcatdir=E:\tomcat\tomcat_cdjcy\
set resourcedir=C:\Users\Administrator\Desktop\test\project\

set appdir=webapps\
set bindir=bin\
set today=%date:~0,10%
set formatdate=%today:/=-%
set modifyname1=%file1%%formatdate%
set modifyname2=%file2%%formatdate%
rem 是关闭服务和启动服务。
set openAndStop=false

echo ---------------print variable start--------------------
echo formatdate is %formatdate%
echo today is %today%
echo %resourcedir%
echo %tomcatdir%
echo %bindir%
echo %appdir%
echo %file1%
echo %file2%
echo %file3%
echo %modifyname1%
echo %modifyname2%
echo ---------------print variable end--------------------

%tomcatdir:~0,2%
echo %cd%
rem 关闭服务器
echo ----------------stop server---------------------------
if "%openAndStop%"=="true" (
	cd %tomcatdir%%bindir%
	echo %cd%
	call shutdown.bat
)

rem 备份文件重命名
echo ----------------backup file and rename---------------------------
cd %tomcatdir%%appdir%
echo %cd%

rem 这里的两个if是为了处理今天已经备份过文件,出现文件重名的问题
rem if exist %modifyname1% (
rem ren %file1% "%modifyname1%%time:~0,8%"
rem echo %modifyname1%-%time:~0,8%)
rem if exist %modifyname2% (
rem ren %file2% "%modifyname2%%time:~0,8%"
rem echo %modifyname2%-%time:~0,8%)
if exist "%resourcedir%%file2%" ( echo 1234567=========== )

if exist "%resourcedir%%file1%" (
	if exist %modifyname1% (
	echo delete %file1%
	del %file1%)
	if exist %file1% ren %file1% %modifyname1%
	if exist %file3% rd /s /q %file3%)
if exist "%resourcedir%%file2%" (
	if exist %modifyname2% (
	echo delete %file2%
	rd /s /q %file2%)
	if exist %file2% ren %file2% %modifyname2%)

rem 拷贝源文件到目的地
echo -----------------------copy file from resourcedir to target-------------------
:: TODO
if exist "%resourcedir%%file1%" xcopy %resourcedir%%file1% %tomcatdir%%appdir%
if exist "%resourcedir%%file2%" (
	if not "%file2%"=="" mkdir %file2%
	xcopy %resourcedir%%file2% %tomcatdir%%appdir%%file2% /E
)

rem 启动服务器
echo ------------------start server-------------------------------
if "%openAndStop%"=="true" (
	cd "%tomcatdir%%bindir%"
	if exist startup.bat call startup.bat
)
pause
  1. 这是扫描host.txt中的主机,并远程启动主机上的程序
@echo off
setlocal enabledelayedexpansion
set PWD=Cdjcy123
set EXEC=deploy.bat
set folder=cebon
for /F "eol=# tokens=1,2 delims=&" %%a in (host.txt)  do (
echo -------------%%a--------------
echo a=%%a  b=%%b
schtasks /Create /S %%a /U Administrator /P %PWD% /TN deploy /TR C:\%%b\%folder%\%EXEC% /SC once /ST 00:00
schtasks /Run /S %%a /U Administrator /P %PWD% /TN deploy
schtasks /Delete /S %%a /U Administrator /P %PWD% /TN deploy /F
)
pause

Windows使用dos命令建立ipc$连接并远程拷贝文件:https://blog.csdn.net/qq_29550537/article/details/89376614
DOS命令中schtasks命令的简单使用:
https://blog.csdn.net/qq_29550537/article/details/89374734
Windows批处理修改文件名拼接日期:
https://blog.csdn.net/qq_29550537/article/details/89287600

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值