系统相关脚本


系统相关脚本

一、电脑自启设置 wifi 热点

第一步:打开开机自启文件夹(或者win+r命令输入shell:startup)
%appdata%\Microsoft\Windows\Start Menu\Programs\Startup
第二步:编写脚本(wifi.bat)放到第一步中的文件夹中
powershell -executionpolicy remotesigned -file "%appdata%\Microsoft\Windows\Start Menu\Programs\wifi.ps1"
第三步:打开下面文件夹进行关联程序
%appdata%\Microsoft\Windows\Start Menu\Programs
第四步:在第三步的文件夹中编写脚本,脚本内容如下(wifi.ps1这个名称要和第二步中最后的那个名称一致才能进行程序关联)
Add-Type -AssemblyName System.Runtime.WindowsRuntime
$asTaskGeneric = ([System.WindowsRuntimeSystemExtensions].GetMethods() | ? { $_.Name -eq 'AsTask' -and $_.GetParameters().Count -eq 1 -and $_.GetParameters()[0].ParameterType.Name -eq 'IAsyncOperation`1' })[0]
Function Await($WinRtTask, $ResultType) {
$asTask = $asTaskGeneric.MakeGenericMethod($ResultType)
$netTask = $asTask.Invoke($null, @($WinRtTask))
$netTask.Wait(-1) | Out-Null
$netTask.Result
}
Function AwaitAction($WinRtAction) {
$asTask = ([System.WindowsRuntimeSystemExtensions].GetMethods() | ? { $_.Name -eq 'AsTask' -and $_.GetParameters().Count -eq 1 -and !$_.IsGenericMethod })[0]
$netTask = $asTask.Invoke($null, @($WinRtAction))
$netTask.Wait(-1) | Out-Null
}
$connectionProfile = [Windows.Networking.Connectivity.NetworkInformation,Windows.Networking.Connectivity,ContentType=WindowsRuntime]::GetInternetConnectionProfile()
$tetheringManager = [Windows.Networking.NetworkOperators.NetworkOperatorTetheringManager,Windows.Networking.NetworkOperators,ContentType=WindowsRuntime]::CreateFromConnectionProfile($connectionProfile)
if ($tetheringManager.TetheringOperationalState -eq 1)
{
"Hotspot is already On!"
}
else{
"Hotspot is off! Turning it on"
Await ($tetheringManager.StartTetheringAsync()) ([Windows.Networking.NetworkOperators.NetworkOperatorTetheringOperationResult])
}

二、win11 重装系统时如何修改 C 盘用户名名称,而不是自动生成邮箱前五位

1、安装完系统让你登录账号的时候拔掉网线,保持无网络状态。

2、键盘按下组合键 Shift+F10,弹出命令行窗口,输入OOBE\BYPASSNRO,电脑会进行重启,这样就可以自定义用户名,然后本地账户进行登录,进入系统后再选择微软账户进行登录即可

三、电脑怎么开机设置系统代理自动关闭

1、使用 Win+R,输入以下指令,打开开机自启动项文件夹shell:startup
2、手动新建“开机关闭手动代理设置.bat”,内部填充:

@echo off
Setlocal enabledelayedexpansion
for /f "skip=2 delims=: tokens=1,*" %%i in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyEnable"') do (set str=%%i)
set a=%str:~-3%
echo %a%
if "%a%"=="0x1" (reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f)
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable

四、电脑重装之后的驱动更新问题

1.使用DriverBooster进行驱动更新,这个软件下载驱动的时候最好使用代理这样下载速度会很快,
具体方法可以使用翻墙软件,然后使用系统代理即可提升速度 2.Snappy Driver Installer是一款相当优秀的驱动检测和安装工具,官方下载地址:https://sdi-tool.org/
参考文档视频:https://www.freedidi.com/13235.html

五、强制关机脚本

@echo off
echo 关闭所有进程...
taskkill /F /IM *
echo 关闭完成,正在关机...
shutdown /s /f /t 0

六、开机自启程序脚本(startup.bat)

创建 bat 文件,内容如下:

@echo off
::延时2秒启动
start "" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\有道\网易有道词典\网易有道词典" & ping localhost -n 2
start "" "C:\Users\liuyuan\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Snipaste"
start "" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Everything"
start "" "C:\ProgramData\Microsoft\Windows\Start Menu\企业微信"
start "" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\微信\微信"
exit

七、递归指定文件夹查找指定文件夹并删除

创建 bat 文件,内容如下:

REM program:用于递归指定文件夹查找指定文件夹node_modules并删除
rem searching...
set TARGET_FOLDER=node_modules
set ROOT_DIR=D:\projectFiles
:: 递归遍历文件夹
for /r "%ROOT_DIR%" %%d in (.) do (
    if /i "%%~nd"=="%TARGET_FOLDER%" (
        echo 删除文件夹:%%d
        rd /s /q "%%d"
    )
)
rem finished
pause

八、指定文件夹下的所有的文件夹复制,不复制里面的文件

xcopy "D:\repository" "D:\repository-new"  /T /E

九、用于指定文件夹备份

REM program:用于指定文件夹备份
REM author:liuyuan	version:V1.0
@echo off
setlocal enabledelayedexpansion
REM #配置参数
REM YYYYMMDD
SET currentDate=%date:~0,4%%date:~5,2%%date:~8,2%
REM HHMMSS
SET timeStamp=%time:~0,2%%time:~3,2%%time:~6,2%

set sourceFolder=D:\data
set backupRoot=D:\backup

REM #创建备份
if exist "%sourceFolder%" (
    echo 开始备份
    REM #创建备份目录(如果不存在)
    if not exist "%backupRoot%" mkdir "%backupRoot%"

    REM #生成带时间戳的文件夹名
    set finalTimes=%currentDate%_%timeStamp%
    REM #处理时间中的空格
    set finalTimes=!finalTimes: =0!
    REM #获取最后文件名称
    for %%A in ("%sourceFolder%") do set folderName=%%~nxA
    set backupFolder=%backupRoot%\!folderName!_!finalTimes!

    echo 正在备份 %sourceFolder% 到 !backupFolder!...
    xcopy "%sourceFolder%" "!backupFolder!\" /E /H /C /I /Y

    if %ERRORLEVEL% equ 0 (
        echo 备份成功完成
	PAUSE
    ) else (
        echo 备份过程中出现错误
    )
) else (
    echo 源文件夹不存在: %sourceFolder%
)

备份效果图

image-20250528091505952

十、对当前文件夹的文件进行批量修改

(例如:1 - 项目总览 -xxxxx.md统一将-xxxxx去掉最终变成1 - 项目总览 .md)

@echo off
setlocal enabledelayedexpansion

:: 设置要处理的文件夹路径(当前目录)
set "folder=."

:: 设置要去除的固定后缀
set "suffix= - 智能协同云图库项目教程 - 编程导航教程"

:: 遍历文件夹中的所有文件
for %%f in ("%folder%\*%suffix%*") do (
    :: 获取文件名和扩展名
    set "filename=%%~nf"
    set "extension=%%~xf"
    
    :: 去除后缀部分
    set "newfilename=!filename:%suffix%=!"
    
    :: 如果文件名有变化才重命名
    if not "!newfilename!"=="!filename!" (
        :: 组合新文件名
        set "newfile=!newfilename!!extension!"
        
        :: 执行重命名操作
        ren "%%f" "!newfile!"
        echo 已重命名: "%%~nxf""!newfile!"
    )
)

echo 处理完成!
pause

文章作者: Liu Yuan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Liu Yuan !
—— 评论区 ——
  目录