常用windows脚本

1.电脑开机一键启动多个应用

注意:需要修改代码中应用的路径

@echo off
:: ============================================
:: 一键启动程序(自动关闭窗口版)
:: 功能:启动指定程序,已运行则跳过
:: ============================================

:: 基本配置
title Program Launcher
chcp 65001 >nul
color 0a
goto main

:Launch
if "%~1"=="" (
    echo [X] 错误:未提供EXE文件名
    goto :eof
)
if "%~3"=="" (
    echo [X] 错误:未提供程序路径
    goto :eof
)
if not exist "%~3" (
    echo [X] 错误:路径不存在: %~3
    goto :eof
)

tasklist /NH /FI "IMAGENAME eq %~1" 2>nul | find /i "%~1" >nul
if %errorlevel% equ 0 (
    echo [√] %~2 已在运行
) else (
    echo [ ^> ] 正在启动 %~2...
    start "" /B /D "%~dp3" "%~3"
    timeout /t 2 /nobreak >nul
)
goto :eof

:main
call :Launch "idea64.exe" "IDEA" "E:\soft\IntelliJ IDEA 2023.2\bin\idea64.exe"
call :Launch "dbeaver.exe" "DBeaver" "E:\soft\DBeaver\dbeaver.exe"
call :Launch "chrome.exe" "Chrome" "C:\Program Files\Google\Chrome\Application\chrome.exe"
call :Launch "notepad++.exe" "Notepad++" "E:\soft\binNotepad++\notepad++.exe"

for %%A in ("C:\Program Files (x86)\Feishu\Feishu.exe") do (
    set "feishu_path=%%~sA"
)
call :Launch "Feishu.exe" "飞书" "%feishu_path%"

echo.
echo =====================
echo 所有程序已处理完毕!
timeout /t 2 >nul
exit

2.一键删除某个目录下所有的target、.git、.idea文件夹*.iml文件

@echo off
setlocal enabledelayedexpansion

:: 设置要搜索的根目录
set "root_dir=E:\code1"

echo 当前工作目录: %cd%
echo 检查的目录: %root_dir%

:: 检查目录是否存在
if not exist "%root_dir%" (
    echo 错误: 目录 "%root_dir%" 不存在
    pause
    exit /b
)

echo 正在扫描 %root_dir% 下的 target、.git、.idea 文件夹和 *.iml 文件...
echo.

:: 使用 PowerShell 查找隐藏文件夹
set "found_folders=0"
for /f "delims=" %%f in ('
    powershell -NoProfile -Command "Get-ChildItem -Path '%root_dir%' -Directory -Force -Include '.git', '.idea', 'target' -Recurse | Select-Object -ExpandProperty FullName"
') do (
    set "folder=%%f"
    call :process_folder
)

:: 递归搜索子目录中的 target、.git、.idea 文件夹(但不递归它们的子文件夹)
call :search_subfolders "%root_dir%"

:: 删除所有 .iml 文件(递归搜索)
set "found_files=0"
echo 正在搜索 .iml 文件...
for /f "delims=" %%f in ('dir /s /b "%root_dir%\*.iml" 2^>nul') do (
    set "file=%%f"
    call :process_file
)

echo.
echo 扫描完成:
echo 找到 !found_folders! 个文件夹
echo 找到 !found_files! 个 .iml 文件
pause
exit /b

:: 处理找到的文件夹(不递归子文件夹)
:process_folder
echo 找到文件夹: !folder!
set /a found_folders+=1
rd /s /q "!folder!" >nul 2>&1
goto :eof

:: 处理找到的文件
:process_file
echo 找到文件: !file!
set /a found_files+=1
del /f /q "!file!" >nul 2>&1
goto :eof

:: 递归搜索子文件夹,但不进入 target、.git、.idea
:search_subfolders
set "current_dir=%~1"
for %%d in (target .git .idea) do (
    if exist "!current_dir!\%%d\" (
        set "folder=!current_dir!\%%d"
        call :process_folder
    )
)
:: 继续递归子文件夹(但不进入 target、.git、.idea)
for /f "delims=" %%f in ('dir /b /ad /a-h "!current_dir!*" 2^>nul') do (
    if exist "!current_dir!\%%f\" (
        set "subfolder=%%f"
        if /i not "!subfolder!"=="target" if /i not "!subfolder!"==".git" if /i not "!subfolder!"==".idea" (
            call :search_subfolders "!current_dir!\%%f"
        )
    )
)
goto :eof

### 常用 Windows 脚本示例及用途 #### 批处理脚本基础 批处理脚本(Batch Script)是 Windows 中最简单的自动化工具之一,通常以 `.bat` 或者 `.cmd` 文件形式存在。这类脚本主要用于简化重复性的命令行操作。 #### 使用 `FOR` 循环遍历目录中的文件并显示其名称 ```batch @ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION FOR %%F IN (*.txt) DO ( ECHO File found: %%F ) ENDLOCAL PAUSE ``` 这段代码会打印当前目录下所有的文本文件名[^3]。 #### 自动化 IP 配置查询 为了方便管理员快速获取计算机的网络配置详情,可以通过编写如下简单脚本来实现: ```batch @ECHO OFF ipconfig /all > C:\NetworkConfig.txt START notepad C:\NetworkConfig.txt EXIT ``` 此脚本将会把详细的IP设置导出至指定路径下的文本文件,并自动打开记事本查看结果[^2]。 #### 创建定时重启任务计划 有时可能需要定期重新启动某些服务来保持最佳性能状态;下面是一个创建每日凌晨两点钟重启特定进程的例子: ```batch SCHTASKS /CREATE /TN "DailyRestartService" /TR "powershell.exe Stop-Process -name 'servicename'; Start-Sleep -s 10; Start-Service servicename" /SC DAILY /ST 02:00 /RU SYSTEM ``` #### 实现更复杂的逻辑控制结构 当面对更加复杂的需求时,则可以借助于条件判断语句与括号配合完成多步流程的设计。比如检测某个程序是否存在再决定是否安装新版本: ```batch IF EXIST "C:\Program Files\ExampleApp\" ( REM 如果已安装则跳过 GOTO END ) REM 安装新的应用程序副本... (CD /D "%~dp0" CALL setup.exe /silent ) :END ECHO Done. PAUSE ``` 这里展示了如何利用括号将多个命令组合起来作为一个整体执行,同时也体现了变量延迟的重要性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值