无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 4641|回复: 10
打印 上一主题 下一主题

[求助] 批处理全盘搜索指定配置文件,并加载运行。求高手指教!!!

[复制链接]
跳转到指定楼层
1#
发表于 2017-7-26 12:00:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序文件名:test.exe, 配置文件:test.ini,加载配置文件后启动运行参数:test.exe d:\123\test.ini (备注:这里假设配置文件test.ini在D盘123文件夹下),如果没有就直接启动运行test.exe

批处理如何写个全盘搜索123下面的test.ini文件,如果有就执行test.exe 盘符:\123\test.ini,如果没有就执行test.exe
2#
发表于 2017-7-26 20:27:25 | 只看该作者
我写过一个现成的叫SWAI,自己搜...
回复

使用道具 举报

3#
发表于 2017-7-27 10:47:15 来自手机 | 只看该作者
你这还注册个马甲

  1. @echo off
  2. pushd %~dp0
  3. for /f "tokens=2 delims=," %%i in ('wmic datafile where "filename='test' and extension='exe' or filename='test' and extension='ini'" get name^,version /format:csv ^| findstr /i /c:"test"') do (
  4.         if /i "%%~xi"==".exe" set "exefile=%%~i"
  5.         if /i "%%~xi"==".ini" set "inifile=%%~i"
  6. )
  7. start /wait %exefile% %inifile%
  8. pause
复制代码
回复

使用道具 举报

4#
 楼主| 发表于 2017-7-27 20:02:10 | 只看该作者
nttwqz 发表于 2017-7-27 10:47
你这还注册个马甲

我不是谁的马甲啊,你把我当成谁了啊?
回复

使用道具 举报

5#
 楼主| 发表于 2017-7-27 20:21:24 | 只看该作者
nttwqz 发表于 2017-7-27 10:47
你这还注册个马甲


你的昵称好面熟的感觉。不知道我们是否认识。
回复

使用道具 举报

6#
发表于 2017-7-27 20:43:22 | 只看该作者


  1. @echo off
  2. ::要运行程序的绝对路径
  3. set program=C:\test.exe
  4. ::配置文件的搜索路径, 注意不必加上盘符
  5. set path=:\123\test.ini
  6. ::要搜索的盘符列表, 空格隔开
  7. set list=A B C D E F G H I J K L M N O P Q R S T U V W S Y Z
  8. :: 搜索到的配置文件路径 (程序自动设置)
  9. set target=

  10. for %%j in (%list%) do (
  11.   if exist "%%j%path%" (
  12.                 set target=%%j%path%
  13.    )
  14. )

  15. if "%target%"=="" (
  16.         %program%
  17. ) else (
  18.         %program% "%target%"
  19. )

复制代码
回复

使用道具 举报

7#
 楼主| 发表于 2017-7-27 20:54:26 | 只看该作者
本帖最后由 熄灭的烟 于 2017-7-27 20:55 编辑
nttwqz 发表于 2017-7-27 10:47
你这还注册个马甲


代码有用,不过缺点就是执行完后CMD窗口一直停留,必须退出程序后CMD窗口才会退出。怎样做到代码执行后自动退出,不必等到程序退出后才退出CMD窗口?

点评

去掉/wait参数  详情 回复 发表于 2017-7-28 09:12
回复

使用道具 举报

8#
 楼主| 发表于 2017-7-27 22:44:55 | 只看该作者

你的代码也OK,但跟上面的有同样的问题。就是执行完后CMD窗口一直停留,必须退出程序后CMD窗口才会退出。怎样做到代码执行后自动退出,不必等到程序退出后才退出CMD窗口?

点评

加上exit /b  详情 回复 发表于 2017-7-27 23:27
回复

使用道具 举报

9#
发表于 2017-7-27 23:27:18 | 只看该作者
熄灭的烟 发表于 2017-7-27 22:44
你的代码也OK,但跟上面的有同样的问题。就是执行完后CMD窗口一直停留,必须退出程序后CMD窗口才会退出。 ...

加上exit /b
回复

使用道具 举报

10#
发表于 2017-7-27 23:48:12 | 只看该作者

  1. @echo off
  2. ::要运行程序的绝对路径
  3. set program=C:\test.exe
  4. ::配置文件的搜索路径, 注意不必加上盘符
  5. set path=:\123\test.ini
  6. ::要搜索的盘符列表, 空格隔开
  7. set list=A B C D E F G H I J K L M N O P Q R S T U V W S Y Z
  8. :: 搜索到的配置文件路径 (程序自动设置)
  9. set target=

  10. for %%j in (%list%) do (
  11.   if exist "%%j%path%" (
  12.         set target=%%j%path%
  13.    )
  14. )

  15. if "%target%"=="" (
  16.         start "" "%program%"
  17. ) else (
  18.         start "" "%program%" "%target%"
  19. )
  20. goto :eof
复制代码
回复

使用道具 举报

11#
发表于 2017-7-28 09:12:49 来自手机 | 只看该作者
熄灭的烟 发表于 2017-7-27 20:54
代码有用,不过缺点就是执行完后CMD窗口一直停留,必须退出程序后CMD窗口才会退出。怎样做到代码执行后 ...

去掉/wait参数
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-27 09:51

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表