无忧启动论坛

标题: 批处理搜索程序后并带参数运行程序 [打印本页]

作者: 2012秋风落叶    时间: 2012-6-23 20:54
标题: 批处理搜索程序后并带参数运行程序
我想用批处理搜索一个程序 rar.exe的程序,搜索到后并且是带参数 /s /q运行,
请问该怎么写
下面是我根据坛友帖子写的,怎么把/s /q两个参数加进去呢
大家知道rar程序加了/s /q之后就可以静默安装啦,我要的就是这个效果,求助!
@echo off
title 正在搜索程序
color 2E
mode con cols=35 lines=30
echo.
echo.
echo.
echo 正在搜索RAR.EXE

echo.
for %%i in (q p o n m l k j i h g z f e d c) do (
echo 正在搜索%%i盘 请稍后...
cd /d %%i:\
for /f "delims=" %%i in ('dir "rar.exe" /b /s') do (start /wait "" "%%i"
exit)
)


如果可以的话,我还想用一个批处理搜索好几个程序来运行,
比如上面的rar.exe文件搜索到了之后运行了,继续搜索2012qq.exe,请问这样可以做到吗,可以的话,帮帮忙!

问题已解决,谢谢pznpt


@echo off
title 正在搜索程序
color 2E
mode con cols=35 lines=30
echo.
echo.
echo.
for %%a in ("abc.exe\/s" "def.exe" "office 2003.exe\-gm2 -ai -qn") do (
for /f "tokens=1* delims=\" %%b in ("%%~a") do call :lp "%%b" "%%c"
)
pause&goto :eof
:lp
cls&echo 正在搜索%~1
for %%i in (q p o n m l k j i h g z f e d c) do (
if exist "%%i:\" (
echo.&echo 正在搜索%%i盘 请稍候...
for /f "delims=" %%j in ('dir /a-d /b /s "%%i:\%~1"') do (
start /wait "" "%%j" %~2
goto :eof
)
)
)


[ 本帖最后由 2012秋风落叶 于 2012-7-6 14:42 编辑 ]
作者: pznpt    时间: 2012-6-23 23:32
楼主说的是rar自解压安装程序吧?

如果是,改成start /wait "" "%%i" /s

应该就可以了
作者: 2012秋风落叶    时间: 2012-6-24 00:43
标题: 回复 #2 pznpt 的帖子
太感谢你啦,果然OK,看到你回答好多问题,帮助了好多人,理应当个DOS版主呀!
对了,
如果可以的话,想用一个批处理搜索好几个程序来运行,
比如上面的rar.exe文件搜索到了之后运行了,继续搜索2012qq.exe,请问这样该怎么写呢?
作者: 2012wdyhyx1965    时间: 2012-6-24 22:12
标题: 能不能不显示命令行
能不能不显示命令行
作者: pznpt    时间: 2012-6-24 22:13
标题: 回复 #3 2012秋风落叶 的帖子
  1. @echo off
  2. title 正在搜索程序
  3. color 2E
  4. mode con cols=35 lines=30
  5. echo.
  6. echo.
  7. echo.
  8. for %%a in ("abc.exe\/s" "def.exe" "office 2003.exe\-gm2 -ai -qn") do (
  9.   for /f "tokens=1* delims=" %%b in ("%%~a") do call :lp "%%b" "%%c"
  10. )
  11. pause&goto :eof
  12. :lp
  13. cls&echo 正在搜索%~1
  14. for %%i in (q p o n m l k j i h g z f e d c) do (
  15.   if exist "%%i:" (
  16.     echo.&echo 正在搜索%%i盘 请稍候...
  17.     for /f "delims=" %%j in ('dir /a-d /b /s "%%i:\%~1"') do (
  18.       start /wait "" "%%j" %~2
  19.       goto :eof
  20.     )
  21.   )
  22. )
复制代码

[ 本帖最后由 pznpt 于 2012-6-25 16:35 编辑 ]
作者: 2012秋风落叶    时间: 2012-6-25 14:31
标题: 回复 #5 pznpt 的帖子
嗯 非常感谢您的付出,您的回答,但是假如我的静默参数不是/s呢,比如rar.exe是/s 我的office2003.exe参数是-gm2 -ai -qn
这样的话,岂不是有点冲突,请问还可以改改吗?
作者: pznpt    时间: 2012-6-25 16:39
猜到你的要求会是这样的,5楼再试试看吧
作者: 2012秋风落叶    时间: 2012-6-25 17:07
标题: 回复 #7 pznpt 的帖子
谢谢您啦,我就知道你可以做到的,呵呵!太好了,帮了我大忙了!
推荐你申请版主,呵呵!
作者: 2012秋风落叶    时间: 2012-8-18 15:18
标题: 回复 #5 pznpt 的帖子
坛友;又要请您帮忙了,在您写的这个批处理的基础上,添加一点,先判断C:\Windows\A.EXE,有则运行它,运行完毕退出批处理,没有A.EXE则执行那个搜索的批处理,请问这样怎么写?
作者: pznpt    时间: 2012-8-19 14:20
标题: 回复 #9 2012秋风落叶 的帖子
第一行和第二行之间插入:
if exist "C:\Windows\A.EXE" start "" "C:\Windows\A.EXE"&goto :eof
作者: Pale_Cheung    时间: 2012-8-21 12:51
原帖由 2012秋风落叶 于 2012-6-23 20:54 发表
我想用批处理搜索一个程序 rar.exe的程序,搜索到后并且是带参数 /s /q运行,
请问该怎么写
下面是我根据坛友帖子写的,怎么把/s /q两个参数加进去呢
大家知道rar程序加了/s /q之后就可以静默安装啦,我要的 ...

全盘搜索前 先找注册表
  1. if exist "%ProgramFiles%\winrar\rar.exe" (
  2. set RarPath=%ProgramFiles%\winrar
  3. ) else if exist "%ProgramFiles(x86)%\winrar\rar.exe" (
  4. set "RarPath=%ProgramFiles(x86)%\winrar"
  5. ) else (
  6. reg query HKLM\software\winrar /v exe64>nul 2>nul
  7. if errorlevel 1 (
  8. reg query HKLM\software\winrar /v exe32>nul 2>nul
  9. if errorlevel 1 (
  10. echo Winrar may not be install in your machine.
  11. ) else if errorlevel 0 (
  12. for /f "usebackq tokens=2,*" %%A in (`reg query HKLM\software\winrar /v exe32^|find /i "exe32"`) do set RarPath=%%B
  13. )
  14. ) else if errorlevel 0 (
  15. for /f "usebackq tokens=2,*" %%A in (`reg query HKLM\software\winrar /v exe64^|find /i "exe64"`) do set RarPath=%%B
  16. )
  17. )
复制代码

作者: 2012秋风落叶    时间: 2012-8-21 22:33
标题: 回复 #10 pznpt 的帖子
如果我的这个A.exe有运行参数呢 比如 /wait  
那又该怎么写呢!
谢谢您耐心指导,我非常感激!
作者: 2012秋风落叶    时间: 2012-8-21 22:34
标题: 回复 #11 Pale_Cheung 的帖子
谢谢大大了
作者: pznpt    时间: 2012-8-22 11:08
标题: 回复 #12 2012秋风落叶 的帖子
直接加A.EXE后面好了
if exist "C:\Windows\A.EXE" start /wait "" "C:\Windows\A.EXE" /wait&goto :eof




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