目录
山不在高,有仙则名。水不在深,有龙则灵。
----CSDN 时时三省
本文引用:
批处理脚本(bat脚本)用法总结_批处理命令教程-CSDN博客
1. 设置临时环境变量
在命令行模式下设置的环境变量,属于临时环境变量,只针对当前的CMD命令窗口有效,并不影响其他窗口中的环境变量,更不会影响到永久性的环境变量,要设置永久的环境变量,需要通过图形操作修改。
cmd:
set path=%path%;C:\test ::在原有环境变量的基础上追加环境变量
power shell:
$env:path+="C:\test"
2. 启动CMD执行命令
start cmd /k ::启动一个CMD且不关闭CMD
start cmd /c ::启动一个CMD且关闭CMD
start cmd /k "命令1 & 命令2 & 命令3" ::无论前面命令是否成功, 后面都会执行
start cmd /k "命令1 && 命令2 && 命令3 " ::仅当前面命令成功时, 才执行后面,一般用这个
start cmd /k "命令1 || 命令2 || 命令3" ::仅当前面命令失败时. 才执行后面
如果需要执行指定的脚本文件,请使用 call
命令,示例如下:
call test.bat
3. 打开环境变量窗口
rundll32 sysdm.cpl,EditEnvironmentVariables
4. 获取用户输入并显示
@echo off
set /p user_input=请输入内容:
echo 你输入的内容是:%user_input%
5. 执行外部程序后再执行脚本
@echo off
:: 打开指定软件
start notepad.exe
:: 延时5秒
echo Waiting for 5 seconds...
timeout /t 5 /nobreak >nul
:: 激活虚拟环境
echo Activating virtual environment...
call .\venv\Scripts\activate
:: 执行python脚本
python test.py
echo sucess!
echo Windows will close in 5 seconds...
timeout /t 5 /nobreak >nul
6. 执行命令并隐藏窗口
@echo off
start /b notepad ::打开记事本
7. 执行命令并最小化窗口
@echo off
start /min cmd /c "notepad"
@echo off
powershell -WindowStyle Minimized -Command "notepad"
8. 批量修改文件名
@echo off
setlocal enabledelayedexpansion
rem 设置文件所在目录路径
set "folderPath=C:\YourFolderPath"
rem 进入目标目录
cd %folderPath%
rem 循环处理每个文件
for %%F in (*) do (
rem 获取文件名(带扩展名)
set "fileName=%%F"
rem 移除字母部分,保留数字
set "newFileName="
for /L %%I in (0, 1, 9) do (
set "newFileName=!newFileName!!fileName:%%I=!"
)
rem 重命名文件
ren "%%F" "!newFileName!"
)
endlocal
9. 批量修改文件夹名
@echo off
setlocal enabledelayedexpansion
rem 设置要处理的文件夹路径
set "folderPath=C:\Path\To\Your\Folder"
rem 遍历文件夹
for /d %%i in ("%folderPath%\*") do (
rem 获取文件夹名
set "folderName=%%~nxi"
rem 清除字母
set "folderNameWithoutLetters="
for /L %%j in (0, 1, 9) do (
set "folderName=!folderName:%%j=!"
)
rem 重命名文件夹
ren "%%i" "!folderNameWithoutLetters!"
)
endlocal
10. 搜索文件夹
① 搜索当前目录是否存在以指定字符串结尾的文件夹
@echo off
setlocal enabledelayedexpansion
set "str=202412" REM 替换为您要搜索的字符串
set /a length=6
echo 搜索到以下文件夹:
for /d %%i in (*) do (
set "folder_name=%%i"
set "last_characters=!folder_name:~-%length%!" REM 将“长度”替换为您要检查的字符串的长度
if "!last_characters!" == "%str%" (
echo "!folder_name!"
)
)
endlocal
pause
11. 修改ip地址
@echo off
echo **************************************************************************
echo * 修改IP地址、DNS *
echo **************************************************************************
set /p ip="请输入指定的IP:"
echo 正在修改IP地址和DNS服务器地址,请耐心等待…………
echo 正在更改本机IP地址...
netsh interface ipv4 set address name="以太网 5" source=static addr=%ip% mask=255.255.255.0 gwmetric=0 >nul
echo.
echo IP已修改为:[32m%ip%[0m
echo.
pause