批处理全盘搜索指定配置文件,并加载运行。求高手指教!!!
程序文件名: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 我写过一个现成的叫SWAI,自己搜... 你这还注册个马甲
@echo off
pushd %~dp0
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 (
if /i "%%~xi"==".exe" set "exefile=%%~i"
if /i "%%~xi"==".ini" set "inifile=%%~i"
)
start /wait %exefile% %inifile%
pause nttwqz 发表于 2017-7-27 10:47
你这还注册个马甲
我不是谁的马甲啊,你把我当成谁了啊? nttwqz 发表于 2017-7-27 10:47
你这还注册个马甲
你的昵称好面熟的感觉。不知道我们是否认识。
@echo off
::要运行程序的绝对路径
set program=C:\test.exe
::配置文件的搜索路径, 注意不必加上盘符
set path=:\123\test.ini
::要搜索的盘符列表, 空格隔开
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
:: 搜索到的配置文件路径 (程序自动设置)
set target=
for %%j in (%list%) do (
if exist "%%j%path%" (
set target=%%j%path%
)
)
if "%target%"=="" (
%program%
) else (
%program% "%target%"
)
本帖最后由 熄灭的烟 于 2017-7-27 20:55 编辑
nttwqz 发表于 2017-7-27 10:47
你这还注册个马甲
代码有用,不过缺点就是执行完后CMD窗口一直停留,必须退出程序后CMD窗口才会退出。怎样做到代码执行后自动退出,不必等到程序退出后才退出CMD窗口? guyue2011 发表于 2017-7-27 20:43
你的代码也OK,但跟上面的有同样的问题。就是执行完后CMD窗口一直停留,必须退出程序后CMD窗口才会退出。怎样做到代码执行后自动退出,不必等到程序退出后才退出CMD窗口? 熄灭的烟 发表于 2017-7-27 22:44
你的代码也OK,但跟上面的有同样的问题。就是执行完后CMD窗口一直停留,必须退出程序后CMD窗口才会退出。 ...
加上exit /b
@echo off
::要运行程序的绝对路径
set program=C:\test.exe
::配置文件的搜索路径, 注意不必加上盘符
set path=:\123\test.ini
::要搜索的盘符列表, 空格隔开
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
:: 搜索到的配置文件路径 (程序自动设置)
set target=
for %%j in (%list%) do (
if exist "%%j%path%" (
set target=%%j%path%
)
)
if "%target%"=="" (
start "" "%program%"
) else (
start "" "%program%" "%target%"
)
goto :eof
熄灭的烟 发表于 2017-7-27 20:54
代码有用,不过缺点就是执行完后CMD窗口一直停留,必须退出程序后CMD窗口才会退出。怎样做到代码执行后 ...
去掉/wait参数
页:
[1]