windows-bat-demo

1      文件操作
1.1    复制文件
1.1.1  复制文件夹(输入)
从dir1 复制到dir2

@echo off

set /p dir1=d:/temp/logs

set /p dir2=e:/temp

xcopy "%dir1%" "%dir2%" /e /i /y

@pause

1.1.2  复制文件夹(不用输入)
从dir1 复制到dir2

@echo off

set dir1=d:/temp/logs

set dir2=e:/temp/logs

xcopy "%dir1%" "%dir2%"/e /i /y

@pause

1.2    判断文件目录是否存在
判断文件目录是否存在,存在则删除目录;

@echo off

set Pan=spring

if exist %Pan% ( 

         rd/s /q %Pan%

) else ( 

   echo not exist %Pan% 

1.3    删除文件目录
rd /s /q  temp

1.4    解压缩zip/war文件
前提:c:/windows/system32/ 下有unzip.exe 文件

解压到当前目录

unzip.exe -o *.zip

解压缩到指定目录

unzip.exe -o spring.war -d spring

2      字符串处理
2.1    字符串合并
set WAR_DEPLOY_NAME=test

set ZIP_A=.zip

set WAR_FULL_NAME=%WAR_DEPLOY_NAME%%ZIP_A%

echo %WAR_FULL_NAME%

2.2    字符串去空格
使用%A%%B%合并字符串后,如果出现空格,可以使用以下:

set WAR_DEPLOY_NAME=test

set ZIP_A=.zip

set WAR_FULL_NAME=%WAR_DEPLOY_NAME%%ZIP_A%

echo %WAR_FULL_NAME%

set "WAR_FULL_NAME=%WAR_FULL_NAME:=%"

echo %WAR_FULL_NAME%

2.3    字符串截取
 

set WAR_NAME=test.war

rem截取第一个到倒数第5个字符:

set WAR_PREFIX_NAME=%FULL_NAME:~0,-5%

echo %WAR_PREFIX_NAME%

3      Bat文件间参数传递
4      window批处理杀死指定端口进程
4.1    window批处理杀死指定端口进程
@echo off

setlocal enabledelayedexpansion

rem set /p port=请输入端口号:

set port=8989

for /f "tokens=1-5" %%a in('netstat -ano ^| find ":%port%"') do (

   if "%%e%" == "" (

       set pid=%%d

    )else (

       set pid=%%e

    )

   echo !pid!

   taskkill /f /pid !pid!

)

pause

4.2     
@echo off

setlocal enabledelayedexpansion

for /f "delims=  tokens=1" %%i in ('netstat -aon ^|findstr "8080"') do (

set a=%%i

goto js

)

:js

taskkill /pid "!a:~71,5!"

pause>nul

4.3    无错误–正常版本
@echo off

setlocal EnableDelayedExpansion 

set Port= 

set Dstport=8443 

for /F "usebackq skip=4tokens=2,5" %%a in (`"netstat -ano -p tcp"`) do ( 

  for/F "tokens=2 delims=:" %%k in ("%%a") do ( 

   set  Port=%%k 

 ) 

 echo !Port! %%b >>portandpid.txt 

for /F "tokens=2 delims=:" %%c in("%1") do ( 

   set  Port=%%c 

 ) 

for /F "tokens=1,2 delims= " %%din (portandpid.txt) do ( 

    remecho %%d  

   rem echo %Dstport% 

   if %%d == %Dstport% taskkill /f /pid %%e 

 ) 

del portandpid.txt   

set Port= 

set Dstport= 

rem goto :eof  
--------------------- 
作者:MichaelSongs 
来源:CSDN 
原文:https://blog.csdn.net/syc001/article/details/6570307 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/qq_36838191/article/details/83861366