无忧启动论坛

标题: 求一个批处理 [打印本页]

作者: 香国妙手    时间: 2023-10-22 19:20
标题: 求一个批处理
本帖最后由 香国妙手 于 2023-10-22 20:53 编辑

求一个批处理,要求如下:
运行批处理就自动搜索卷标为“八段锦”的优盘盘符,如果优盘盘符为“H”,则自动运行H:\123\abc.exe,如果优盘盘符为“K”,则自动运行K:\123\abc.exe。谢谢!
补充说明:我们只知道优盘卷标为“八段锦”,我们要通过卷标找到优盘盘符(可能是“D-Z”中的某一个),并运行优盘的123\abc.exe





作者: rbwrbw    时间: 2023-10-22 19:50
不难,问下度娘
作者: wszjf    时间: 2023-10-22 20:04
本帖最后由 wszjf 于 2023-10-22 20:10 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion

  3. set targetLabel=八段锦
  4. set targetFile=123\abc.exe

  5. for %%d in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  6.     if exist %%d:\ (
  7.         for /f "tokens=1-2 delims=:" %%a in ('fsutil volume diskfree %%d:\') do (
  8.             set "label="
  9.             for /f "usebackq tokens=2 delims==" %%c in (`wmic logicaldisk where DeviceID^="%%d:" get VolumeName /value`) do (
  10.                 set "label=%%c"
  11.             )
  12.             if "!label!"=="%targetLabel%" (
  13.                 echo 找到目标盘符: %%d:,正在运行 %targetFile%...
  14.                 pushd %%d:\
  15.                 call %targetFile%
  16.                 popd
  17.             )
  18.         )
  19.     )
  20. )

  21. endlocal
复制代码
该脚本会遍历所有盘符,搜索卷标为"八段锦"的优盘盘符,并自动运行该盘符下的123\abc.exe。
注意:如果存在多个满足条件的盘符,脚本会逐个运行它们下面的123\abc.exe文件。如果只要找到一个满足条件的盘符并运行对应的文件,可以在找到目标盘符后添加一个exit语句来终止脚本的执行。

作者: yyz2191958    时间: 2023-10-22 20:11
wszjf 发表于 2023-10-22 20:04
该脚本会遍历所有盘符,搜索卷标为"八段锦"的优盘盘符,并自动运行该盘符下的123\abc.exe。注 ...

很给力!
作者: wjgyz740526    时间: 2023-10-22 20:21
如果除了优盘有目标文件,本地硬盘没有的话,其实可以忽略优盘盘符
作者: kkkssc    时间: 2023-10-22 20:36
@echo off
chcp 936
set pg=123\abc.exe
set pf=八段锦
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (set p=%%i&&call :ch)
echo 没找到对应程序&exit
:ch
echo %p%:
if not exist %p%: goto :bk
for /f "tokens=4 delims= " %%a in ('vol %p%: ^|find /i "%pf%"') do (set pt=%%a)
if 1%pt%==1%pf% (call "%p%:\%pg%" &&exit)
:bk
exit /b
作者: 香国妙手    时间: 2023-10-22 20:42
wszjf 发表于 2023-10-22 20:04
该脚本会遍历所有盘符,搜索卷标为"八段锦"的优盘盘符,并自动运行该盘符下的123\abc.exe。注 ...

感谢大侠热情相助!但是,我另存为ANSI编码的bat文件双击后,却没有显示“找到目标盘符”,也没有运行abc.exe就退出了。请求大侠再次协助,不胜感激!
作者: 香国妙手    时间: 2023-10-22 20:44
kkkssc 发表于 2023-10-22 20:36
@echo off
chcp 936
set pg=123\abc.exe

感谢大侠热情相助!但是,我另存为ANSI编码的bat文件双击后,没有达到预期目的。请求大侠再次协助,不胜感激!
作者: kkkssc    时间: 2023-10-22 20:46
香国妙手 发表于 2023-10-22 20:44
感谢大侠热情相助!但是,我另存为ANSI编码的bat文件双击后,没有达到预期目的。请求大侠再次协助,不胜 ...

本机亲测可以运行,其他不知道了,你直接复制改变上面盘符和程序名就可以了
作者: zjl3480    时间: 2023-10-22 20:58
@echo off setlocal enabledelayedexpansion  set "volume_label=八段锦" set "executable=abc.exe"  for /f "usebackq tokens=1,2" %%a in (`wmic logicaldisk where "drivetype=2" get caption^, volumename ^| findstr /i "%volume_label%"`) do (     set "drive_letter=%%a"     set "volume_name=%%b"      rem Remove trailing spaces from volume name     for /l %%i in (1,1,30) do if "!volume_name:~-1!"==" " set "volume_name=!volume_name:~0,-1!" )  if defined drive_letter (     set "path=!drive_letter!\123\%executable%"     if exist "!path!" (         echo Running !path!         "!path!"     ) else (         echo File not found: !path!     ) ) else (     echo Specified volume label not found. )  endlocal
作者: zjl3480    时间: 2023-10-22 20:58
  1. @echo off
  2. setlocal enabledelayedexpansion

  3. set "volume_label=八段锦"
  4. set "executable=abc.exe"

  5. for /f "usebackq tokens=1,2" %%a in (`wmic logicaldisk where "drivetype=2" get caption^, volumename ^| findstr /i "%volume_label%"`) do (
  6.     set "drive_letter=%%a"
  7.     set "volume_name=%%b"

  8.     rem Remove trailing spaces from volume name
  9.     for /l %%i in (1,1,30) do if "!volume_name:~-1!"==" " set "volume_name=!volume_name:~0,-1!"
  10. )

  11. if defined drive_letter (
  12.     set "path=!drive_letter!\123\%executable%"
  13.     if exist "!path!" (
  14.         echo Running !path!
  15.         "!path!"
  16.     ) else (
  17.         echo File not found: !path!
  18.     )
  19. ) else (
  20.     echo Specified volume label not found.
  21. )

  22. endlocal
复制代码

作者: 香国妙手    时间: 2023-10-22 21:02
zjl3480 发表于 2023-10-22 20:58

超级给力,万分感谢!
作者: rbwrbw    时间: 2023-10-22 21:04
good!!!
作者: Joe_Ye    时间: 2023-10-22 21:59
感谢分享

作者: yc2428    时间: 2023-10-22 23:00
感谢分享
作者: tanglf    时间: 2023-10-23 08:59
谢谢分享
作者: 51xp    时间: 2023-10-23 09:13
学习
作者: 咕哩咕噜    时间: 2023-10-23 16:06
经测试可用!
作者: yc2428    时间: 2023-10-23 16:51
学习了
作者: 2010linlance    时间: 2023-10-23 16:59
牛逼,你们都手写啊?

我得靠GPT,然后改改。。。
作者: rbwrbw    时间: 2023-10-23 18:09
高手如云
作者: nowayer    时间: 2023-11-17 02:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: keygen    时间: 2023-11-17 13:53

bingchat生成





欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3