yue-no.3 发表于 2025-2-27 22:02:08

[教程]一些实用的批处理脚本代码

本帖最后由 yue-no.3 于 2025-4-16 09:52 编辑

很多时候一个脚本能解决很多问题
随便写写,用之前自己做好测试



输出文件目录树结构
tree /F >list.txt用法:写说明文档常用,表明各种文件和目录的作用

检测中文目录
@echo off
for /f "delims=" %%i in ('PowerShell '%~dp0' -match '[\u4E00-\u9FFF]'') do set a=%%i

if "%a%"=="True" (
    echo.安装路径不允许中文路径
    pause
    exit
)用法:很多人都头疼小白解压游戏乱放中文文件夹,导致游戏不能启动。用这个启动脚本可以解决很多问题,做个开始游戏.bat就行

合并二进制文件
copy/bfile1+file2+...+fileNDestFile用法:玩过扩容就知道这个东西怎么用,简单实用


检测管理员
@ECHO OFF

Rem 创建文件路径
set TempFile_Name=%SystemRoot%\System32\BatTestUACin_SysRt%Random%.batemp
::echo %TempFile_Name%

Rem 写入文件
( echo "BAT Test UAC in Temp" >%TempFile_Name% ) 1>nul 2>nul

Rem 判断写入是否成功
if exist %TempFile_Name% (
echo 正在以管理员身份运行当前批处理
) else (
echo 没有以管理员身份运行当前批处理
)
pause

Rem 删除临时文件
del %TempFile_Name% 1>nul 2>nul

echo 按空格键退出……
pause >nul用法:部分安装和工具,需要管理权限,可以用此脚本提示。现在随着windows权限管理完善,很多时候已经不需要了

提取文件夹内文件名
DIR *.*/B >list.txt用法:批量提取文件名,可以用来填excel,来做进一步脚本。excel一拖一拽就能创建大量脚本操作,比什么都省事

监控程序执行,这个是魔兽单机的,其他一样思路
@echooff
@title 启动器 - 关闭服务端先关此窗口
@color A

cd C:\wow_112bot
set 数据库脚本="Start MySQL.bat"
set 登录网关="Server\Bin64\spp-login.exe"
set 世界服务器="Server\Bin64\spp-world.exe"
set 世界服务器进程="spp-world.exe"

echo 数据库脚本=%数据库脚本%
echo 登录网关=%登录网关%
echo 世界服务器=%世界服务器%
echo 世界服务器进程=%世界服务器进程%

echo %time:~,-3% 启动数据库…
start"数据库"%数据库脚本%
choice /t 5 /d y /n >nul

echo %time:~,-3% 启动登录网关…
start"登录网关" %登录网关%

echo %time:~,-3% 启动世界服务器…
start"世界服务器"%世界服务器%

echo %time:~,-3% 监控世界服务器运行…
:loop
choice /t 2 /d y /n >nul
tasklist | find /i %世界服务器进程% > nul
if "%errorlevel%"=="1" (
      echo %time:~,-3% 发现世界服务器宕机
      echo %time:~,-3% 重启世界服务器
      start"世界服务器"%世界服务器%
)
goto loop

exit用法:有些时候,要等待游戏结束做一些清理工作,就可以用这个脚本。或者有些前端不稳定可能崩溃,如早期的天马。或者游戏开始前后要修改分辨率刷新率什么的。很多老前端对高刷显示器支持不好,如果不提前改分辨率刷新率可能会造成启动游戏频繁黑屏,如早期的retrobat

备份文件夹
@echo off

::设置要备份的文件夹
set srcDir="C:\srcDir"
::设置备份文件存放文件夹
set destFolder="C:\destFolder"


::设置备份文件名(以年月日时分秒命名)
set name=%date:~0,4%年%date:~5,2%月%date:~8,2%日%time:~0,2%时%time:~3,2%分%time:~6,2%秒

::新建备份文件夹
if not exist %destFolder%\%name% (
md %destFolder%\%name%
)

::开始备份,不改变文件属性,拷贝所有子文件夹,拷贝隐藏文件和文件夹
xcopy %srcDir% %destFolder%\%name% /A /E /H

echo %name%备份完毕!         用法:这东西更适合用来备份游戏存档,当然也可以用powershell来写成自动备份的检测到变化就备份,但是那个要运行环境

lili 发表于 2025-2-27 22:12:23

高手,这是高手

爱唱歌的汤姆猫 发表于 2025-2-27 22:19:28

高手,这是超级高手,真人不露馅{:3_48:}

b7902139 发表于 2025-2-28 00:41:22

进来学习一下:)

地平线下沉 发表于 2025-2-28 05:35:42

学习一下

woshibabala 发表于 2025-2-28 08:40:09

... ...EMMMM   感觉经过dos年代的都会这么几手

wait 发表于 2025-2-28 09:33:12

进来学习一下

w553491775 发表于 2025-2-28 10:52:24

有段时间特别想学,甚至下了好多视频教程,等到自己模拟的时候就烦躁的不行了。:Q

yue-no.3 发表于 2025-2-28 11:22:00

w553491775 发表于 2025-2-28 10:52
有段时间特别想学,甚至下了好多视频教程,等到自己模拟的时候就烦躁的不行了。 ...

批处理是给系统工程师用的,大部分都是装机和配置网络
普通人用的只有很少的一些指令

w553491775 发表于 2025-3-1 05:13:18

yue-no.3 发表于 2025-2-28 11:22
批处理是给系统工程师用的,大部分都是装机和配置网络
普通人用的只有很少的一些指令 ...

但是感觉十分强大。
页: [1]
查看完整版本: [教程]一些实用的批处理脚本代码