Windows vbs bat 脚本 2020-04-10

  • 新建bat文件:*.bat 脚本文件,新建“文本文档”,修改文本文档文件后缀为 ".bat"

  • 使用bat文件:无参直接双击“*.bat”文件。有参 打开cmd .bat 参数

清理系统垃圾文件.bat 脚本

chcp 65001
@echo off

echo 正在清除系统垃圾文件,请稍等......
del /f /s /q  %systemdrive%\*.tmp
del /f /s /q  %systemdrive%\*._mp
del /f /s /q  %systemdrive%\*.log
del /f /s /q  %systemdrive%\*.gid
del /f /s /q  %systemdrive%\*.chk
del /f /s /q  %systemdrive%\*.old
del /f /s /q  %systemdrive%\recycled\*.*
del /f /s /q  %windir%\*.bak
del /f /s /q  %windir%\prefetch\*.*
rd /s /q %windir%\temp & md  %windir%\temp
del /f /q  %userprofile%\cookies\*.*
del /f /q  %userprofile%\recent\*.*
del /f /s /q  "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q  "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q  "%userprofile%\recent\*.*"
echo 清除系统LJ完成!
echo. & pause

定时备份文件 脚本

用.vbs脚本调用.bat脚本, 注意:路径必须是英文,脚本名称必须是英文。

1.a.bat脚本 (执行)

chcp 65001
@echo off
echo "复制aaa目录下所有文件夹及文件到bbb目录下"
echo.
xcopy H:\aaa\*.* H:\bbb\ /s /e /c /y /h /r
pause

b.bat脚本

chcp 65001
echo "只复制文件,不复制文件夹"
copy /y H:\aaa\  H:\bbb\
echo 脚本执行完成
pause

2.c.vbs脚本

CreateObject("Wscript.Shell").run "cmd /c H:\a.bat"

3.创建计划任务:

(1)开始-搜索-任务计划任务-创建基本任务-触发器(选一次)下一步-操作“启动程序”(选择刚才创建的vbs文档c.vbs脚本)下一步-完成(选择最下面对勾)。

清理文件夹.bat

del F:\coom /q

bat按顺序调用多个bat

*.bat

createobject("wscript.shell").run "D:/apache-tomcat-8081/bin/shutdown.bat",0,true
createobject("wscript.shell").run "D:/apache-tomcat-8081/bin/startup.bat",0

实例:tomcat 重启脚本

true 是代表当前脚本执行完毕,再继续向下执行

0 是时间

黑别人电脑强制关机.vbs 脚本

do while a<>"我是咸鱼" 
a=inputbox("快在下面的框框里输入我是咸鱼,否则后果自负,快输""我是咸鱼"" ","输不输","不输") 
loop 
x=msgbox("你是不是傻?不要试着点 取消",VbOkCancel)
if x=VbOk then
msgbox("哈哈傻了吧唧的咸鱼,么么哒")
elseif x=Vbcancel then
msgbox("哼,死咸鱼,再见...再见,嘻嘻30S保存好电脑文档。。小神!!!")
set ws=createobject("wscript.shell")
ws.run"cmd.exe /c shutdown -s -f -t 30"
end if

作用:发送给要被捉弄的对象,当点击脚本一直循环弹出要展示的内容。最后直至电脑被黑关机。

解决不被黑关机的方式:进入“任务管理器”,强制关闭 应用“脚本运行的进行”。

关闭端口及端口所暂用的进程.bat

chcp 65001
@echo off&title 正在检测端口...
echo "CMD 关闭端口脚本,传参: .\stopPort.bat 8080"
set num=%1
for /f "tokens=3 delims=: " %%a in ('netstat -an') do (
    if "%%a"=="%num%" (
        echo Port %num% detected %num%
        echo Looking up process PID ...
        echo 端口 %num% 被检测到, 正在查找 %num% 的进程 PID...
        for /f "tokens=5" %%m in ('netstat -aon ^| findstr ":%num%"') do (
            if "%%m" neq 0 (
                echo PID is %%m detected exists
                echo PID is %%m  被检测到, 正在结束PID的进程...
                taskkill /f /pid %%m
                echo Kill PID %%m successfully
                goto :end
            )
        )
    )
)
:end
CMD command executed successfully
pause

目的: 关闭8080端口及端口所占用的进程

使用方式:打开CMD命令窗口,输入传参: .\stopPort.bat 8080

优化后脚本.bat

chcp 65001
@echo off&title 正在检测端口...
echo "正在关闭 端口 8080"
set num=8080
for /f "tokens=3 delims=: " %%a in ('netstat -an') do (
    if "%%a"=="%num%" (
        echo Port %num% detected %num%
        echo Looking up process PID ...
        for /f "tokens=5" %%m in ('netstat -aon ^| findstr ":%num%"') do (
            if "%%m" neq 0 (
                echo PID is %%m detected exists
                taskkill /f /pid %%m
                echo Kill PID %%m successfully
                goto :end
            )
        )
    )
)
:end
CMD command executed successfully
pause

目的: 关闭8080端口及端口所占用的进程

使用方式:双击 StopTomcat.bat 脚本文件

最总脚本.bat

chcp 65001
@echo off&title 正在检测端口...
set num=8080
for /f "tokens=3 delims=: " %%a in ('netstat -an') do (
    if "%%a"=="%num%" (
        echo 端口 %num% 被检测到, 正在查找 %num% 的进程 PID...
        for /f "tokens=5" %%m in ('netstat -aon ^| findstr ":%num%"') do (
            if "%%m" neq 0 (
                echo PID is %%m  被检测到, 正在结束PID的进程...
                taskkill /f /pid %%m
                echo PID %%m close successfully
                goto :end
            )
        )
    )
)
:end
echo Not Find %num%  Or %num% close successfully
pause

根据端口号关闭应用程序

  • CloseMultiplePorts.bat 根据多个端口号关闭多个应用
  • ClosePort.bat 根据指定某个端口号关闭应用

CloseMultiplePorts.bat

chcp 65001
@echo off
for /l %%n in (8082,1,8083) do (
    @echo find the process which use port [%%n]
    for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%%n"') do (
        tasklist /FI "PID eq %%m"|find /i "PID" && (
        echo PID:%%m “运行中”,kill the process [%%m] who use the port [%%n]
        taskkill /F /pid %%m
        ) || echo PID:%%m “未运行” 
    )
)
pause

ClosePort.bat

chcp 65001
@echo off
set port=27017
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
    echo kill the process %%m who use the port %port%
    taskkill /pid %%m
)

pause

清理maven本地存储仓库

  • mavenRepositories.bat 解决maven 删除maven下载失败的标识文件:jar已下载,显示报红
  • mavenLastUpdated.bat 解决maven下载失败的jar 文件 : 防止maven不再下载文件

mavenLastUpdated.bat

@echo off
 rem create by sunhao(sunhao.java@gmail.com)
 rem crazy coder
  
 rem 目的:解决项目下载jar不全,或者某些jar下载失败
 rem 这里写你的仓库路径:只需要修改这里的仓库路径
 rem 双击即可运行
 set REPOSITORY_PATH=I:\maven\repository
 rem 正在搜索...
 for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (
     del /s /q %%i
 )
 rem 搜索完毕
 pause 

mavenRepositories.bat

@echo off
 rem create by sunhao(sunhao.java@gmail.com)
 rem crazy coder
 
 rem 目的:解决当jar存在本地仓库,项目中还是显示红色下划线,且项目不能启动的情况
 rem 这里写你的仓库路径:只需要需修改路径配置
 rem 双击即可运行
 set REPOSITORY_PATH=I:\maven\repository
 rem 正在搜索...
 for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*repositories*"') do (
     del /s /q %%i
 )
 rem 搜索完毕
 pause 

git命令项目下拉和推送远程

  • git命令新建本地存储库和远程仓库关联脚本.bat
  • git命令项目发布.bat

git命令新建本地存储库和远程仓库关联脚本.bat

chcp 65001
::此脚本仅执行一次,不可多次执行
::【需要修改1】:github本地仓库,非maven存储库
set DEPLOY_PATH=D:\GitHub\maven-repository

D:
::创建本地仓库
md %DEPLOY_PATH%
cd %DEPLOY_PATH%

::将本地仓库与远程仓库关联
echo "# maven-repository" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/zhengjiaao/maven-repository.git
git push -u origin master

::新建分支snapshot,并将新建的分支推送到远程仓库
git switch -c snapshot
git push --set-upstream origin snapshot

git switch -c release
git push --set-upstream origin release

pause

脚本可以放到任何位置执行

git命令项目发布.bat

chcp 65001
echo "注:1、将此bat脚本文件放到项目跟路径下"
echo "    2、启动CMD 参传方式: github.bat r/s"
echo "    3、参数说明:r/s r是release正式版本,s是snapshot快照版本"

:: deploy参数,snapshot 表示快照包,简写为s, release表示正式包,简写为r
set arg=%1

::【需要修改1】:github本地存储库,非maven存储库
set DEPLOY_PATH=D:/GitHub/maven-repository/
::分支
set "branch="

:: 快照包发布 snapshot分支
if "s"=="%arg%" (
    set "branch=snapshot"
)

:: 正式包发布 release分支
if "r"=="%arg%" (
    set "branch=release"
)

D:
cd %DEPLOY_PATH%
git pull

echo 切换对应分支%branch%
git checkout %branch%

::【需要修改2】:项目的磁盘
J:
::回到项目当前根目录
cd %~dp0
echo 开始deploy,将项目发布到本地存储库%DEPLOY_PATH%
call mvn clean deploy -Dmaven.test.skip  -DaltDeploymentRepository=self-mvn-repo::default::file:%DEPLOY_PATH%

D:
cd %DEPLOY_PATH%
echo 本地存储库的发送到github仓库%branch%分支上
git add .
git commit -m "提交新的版本"
git pull
git push origin %branch%

echo 将%branch%分支合并到master分支
git checkout master
git add .
git git commit -m 'master'
git merge %branch%
git commit -m 'master merge'
git push origin master

::git push origin master

pause

注:
1、将此bat脚本文件放到项目跟路径下
2、参数说明:r/s r是release正式版本,s是snapshot快照版本
3、启动CMD 参传方式: github.bat r/s

github hexo next7 博客搭建脚本

脚本执行顺序:

  1. Install_Hexo_Next7.bat
    此脚本运行条件:已安装git、node.js(含npm)
    作用:安装hexo博客和next7主题

  2. run.bat
    此脚本作用:运行本地博客
    可访问:http://localhost:4000/

  3. Install_Plug.bat
    安装所需插件,需要修改主题配置或站点配置。

  4. deploy.bat
    配置博客发布的github相关配置,将博客发布到github上。

Install_Hexo_Next7.bat

chcp 65001
echo "准备安装 Hexo 和 Next7主题......" 

echo "准备-g全局安装hexo"
call npm install hexo-cli -g

echo "正在安装deployer发布到github插件"
call npm install hexo-deployer-git --save

echo "正在检测hexo是否安装成功"
call hexo -v

echo "正在初始化博客配置+博客名"
call hexo init blog

echo "进入博客名 blog"
cd blog

echo "安装需要的npm相关依赖"
call npm install


echo "#######准备下载next主题 最新版本7......#######"
call git clone https://github.com/theme-next/hexo-theme-next themes/next7

echo "##############本地运行博客准备中......##############"

echo "#######准备清除缓存......########"
call hexo clean

echo "#######准备生成静态文件......########"
call hexo g

echo "#######本地博客正在启动...请访问http://127.0.0.1:4000########"
hexo s

:: 指定端口运行方式 hexo s -p 8080 默认端口4000
pause

run.bat

chcp 65001
echo "本地运行博客准备中......"

echo "#######准备清除缓存......########"
call hexo clean

echo "#######准备生成静态文件......########"
call hexo g

echo "#######本地博客正在启动......########"
hexo s

:: 指定端口运行方式 hexo s -p 8080 默认端口4000
pause

Install_Plug.bat

chcp 65001
echo "准备安装插件......" 

echo "准备安装 hexo博客部署到远端的Github插件"
call npm install hexo-deployer-git --save

echo "准备安装 安装本地搜索插件"
call npm install hexo-generator-searchdb --save

echo "准备安装 统计插件"
call npm install hexo-symbols-count-time

echo "准备安装 文章置顶功能插件"
call npm uninstall hexo-generator-index --save
call npm install hexo-generator-index-pin-top --save

echo "准备安装 博客文章中插入图片插件"
call npm install https://github.com/CodeFalling/hexo-asset-image --save

echo "准备安装 添加页面宠物插件"
call npm install -save hexo-helper-live2d
call npm install live2d-widget-model-wanko

echo "准备安装 设置RSS订阅插件"
call npm install --save hexo-generator-feed

echo "准备安装 主页、归档、标签及分类分别分页控制插件"
call npm install hexo-generator-index --save
call npm install hexo-generator-archive --save
call npm install hexo-generator-tag --save
call npm install hexo-generator-category --save

echo "准备安装 文章标签显示和文章字数显示设置插件"
call npm install hexo-wordcount --save

echo "准备安装 显示最近博客插件"
call npm install hexo-related-popular-posts --save

:: 指定端口运行方式 hexo s -p 8080 默认端口4000
pause

deploy.bat

chcp 65001
echo "正在准备本地博客发布工作......"

echo "#######准备清除缓存......########"
call hexo clean

echo "#######准备生成静态文件......########"
call hexo g

echo "#######准备发布本地博客......########"
call hexo d

echo "#######成功将本地博客发布到Github########"
pause

推荐阅读更多精彩内容