Windows批处理常用脚本


文章目录

  • Windows批处理常用脚本
  • 一、批处理文件是什么?
  • 二、如何在windows上编写批处理脚本
  • 1.创建.bat文件
  • 2.常用批处理脚本



一、批处理文件是什么?

批处理文件包含一系列 DOS命令,通常用于自动执行重复性任务,用户只需双击批处理文件便可执行任务,而无需重复输入相同指令,配合windows定时任务设置可以在Windows中善用批处理可以简化很多重复工作。

二、如何在windows上编写批处理脚本

1.创建.bat文件

批处理文件只是一个以 .bat 文件扩展名保存的文本文件。您可以使用记事本或更高级的文本编辑器如Notepad++ )编写一个,但不要使用文字处理器(如 Microsoft Word),首先右键新建文本文档,将文本文档修改为.bat 文件,就可以编辑脚本了。

2.常用批处理脚本

脚本如下(示例):

1、复制文件
该脚本将从指定的源路径复制一个文件,并将其粘贴到指定的目标路径。

@echo off
set source=C:\folder\file.txt
set destination=C:\backup\file.txt
copy %source% %destination%

2、批量重命名文件
该脚本将遍历指定文件夹中的所有 txt 文件,并将它们重命名为
“new_name_1.txt”,“new_name_2.txt”等。

@echo off
setlocal enabledelayedexpansion
set counter=1
for %%f in (*.txt) do (
    ren "%%f" "new_name_!counter!.txt"
    set /a counter+=1
)

3、压缩文件夹
该脚本将使用 7-Zip 压缩指定文件夹,并将压缩文件保存到指定的目标路径。

@echo off
set source=C:\folder
set destination=C:\backup\folder.zip
"C:\Program Files\7-Zip\7z.exe" a -tzip %destination% %source%

4、备份 MySQL 数据库
该脚本将使用 mysqldump 命令备份 MySQL 数据库,并将备份文件保存到指定的目标路径中,文件名包含时间戳以便区分备份版本。

@echo off
setlocal enabledelayedexpansion
set mysqlpath="C:\Program Files\MySQL\MySQL Server 5.7\bin"
set backuppath="C:\backup"
set timestamp=%date:/=-%_%time::=-%
set timestamp=%timestamp: =0%
cd /d %mysqlpath%
mysqldump -u root -pPassword database_name > "%backuppath%\database_name_%timestamp%.sql"

6、监控指定文件夹中的文件变化
该脚本将监控指定文件夹中的文件变化,并在发现文件变化时执行指定的命令。脚本将每秒扫描一次文件夹,发现变化时执行命令并更新文件列表。

@echo off
setlocal enabledelayedexpansion
set folder=C:\folder
set command=echo file changed
set filelist=
for /f %%f in ('dir /b %folder%') do (
    set filelist=!filelist!%%f
)
:loop
set newfilelist=
for /f %%f in ('dir /b %folder%') do (
    set newfilelist=!newfilelist!%%f
)
if not "!newfilelist!"=="!filelist!" (
    %command%
    set filelist=!newfilelist!
)
timeout /t 1 /nobreak >nul
goto loop

7、自动化文件删除
该脚本将删除指定文件夹中超过指定天数的文件。脚本将递归扫描所有子文件夹,并删除所有满足条件的文件

@echo off
set folder=C:\folder
set days=30
forfiles /p %folder% /s /d -%days% /c "cmd /c del @path"

8、自动化压缩文件夹
该脚本将使用 PowerShell 中的 Compress-Archive 命令将指定文件夹中的所有文件压缩为 ZIP 格式,并将压缩文件重命名为带有时间戳的名称。

@echo off
setlocal enabledelayedexpansion
set folder=C:\folder
set zipfile=C:\folder.zip
set timestamp=%date:/=-%_%time::=-%
set timestamp=%timestamp: =0%
cd /d %folder%
powershell Compress-Archive -Path * -DestinationPath "%zipfile%"
ren "%zipfile%" "folder_%timestamp%.zip"

9、自动化连接到远程服务器并执行命令
该脚本将使用 PsExec 工具连接到指定的远程服务器,并执行指定的命令。脚本将使用 PsExec 的 -u 和 -p 选项指定用户名和密码,使用 -c 选项指定要执行的命令。在这个示例中,命令为 dir,将显示远程服务器上的文件列表

@echo off
setlocal enabledelayedexpansion
set server=192.168.0.1
set username=user
set password=pass
set command=dir
set psexec="C:\Program Files\Sysinternals Suite\PsExec.exe"
%psexec% \\%server% -u %username% -p %password% %command%