Board logo

标题: 请高手们帮忙看一下我写的这个批处理!多谢! [打印本页]

作者: newworld     时间: 2007-1-19 02:05    标题: 请高手们帮忙看一下我写的这个批处理!多谢!

echo off
start /w c:\"Program Files"\QQ\qq.exe

set /p v=是否备份QQ聊天纪录(y/n)?
if %v%==y (
start c:\"Program Files"\winrar\rar.exe A -ep1 d:\QQbak\QQbak.rar c:\"Program Files"\QQ\88513989 )

~~~~~~~~~~~~~~~~~~~~
然后在桌面上建个快捷方式,以最小化的方式启动窗口,等QQ关闭后,就会要你选择是否备份。问题就在这:因为是最小化启动的窗口,所以关闭QQ后就无法看到提示,需要先将窗口还原了才行,这样感觉程序很不方便。我是菜鸟新手,还请高手们能帮忙完善完善这个小程序。多多指点!多谢了!
作者: fastslz     时间: 2007-1-19 02:40
很难做到~
作者: electronixtar     时间: 2007-1-19 02:41
不方便就去学VC++
作者: zh159     时间: 2007-1-19 03:05
试试:
set errorlevel=
start /wait cmd /c "title 是否备份QQ聊天纪录 && mode con cols=37 lines=3&&echo.&&set /p N=  [Y]备份QQ聊天纪录,直接回车取消"
if "%errorlevel%" == "0" echo......

作者: fastslz     时间: 2007-1-19 03:08
试试这个~把主批处理最小化启动就可以了
@echo off
setlocal enabledelayedexpansion
echo.
echo 正在搜索QQ目录 ......
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
    set var=%%i
    set drive=!var:~-2!
    fsutil fsinfo drivetype !drive!|find "固定">nul 2>nul && dir /s /a-d /b !drive!\QQ.exe>>tmp.txt 2>nul
)
set /p QQdir=<tmp.txt
del tmp.txt
echo Path=%QQdir:~0,-7%>test.txt
echo Silent=^1>>test.txt
echo Overwrite=^2>>test.txt
echo Shortcut=D, "qq.exe", "\", "聊天工具。", "腾讯QQ">>test.txt
start /wait /min winrar.exe a -r -ep1 -m1 -sfx -ztest.txt test.exe "%QQdir%"
start /wait /min test.exe
del test.*
echo @echo off>"%QQdir:~0,-7%\test.bat"
echo set /p v=是否备份QQ聊天纪录(y/n)?>>"%QQdir:~0,-7%\test.bat"
echo if %%v%%==y ^(>>"%QQdir:~0,-7%\test.bat"
echo start winrar.exe A -ep1 "d:\QQbak\QQbak.rar" "%QQdir:~0,-7%\88513989">>"%QQdir:~0,-7%\test.bat"
echo ^)>>"%QQdir:~0,-7%\test.bat"
echo Path=%%temp%%>test2.txt
echo SavePath>>test2.txt
echo Setup=test.bat>>test2.txt
echo Silent=^1>>test2.txt
echo Overwrite=^1>>test2.txt
start /wait /min winrar.exe a -r -ep1 -m1 -sfx -ztest2.txt "%QQdir:~0,-7%\test.exe" "%QQdir:~0,-7%\test.bat"
del test2.*
"%QQdir%"
"%QQdir:~0,-7%\test.exe"
[ Last edited by fastslz on 2007-1-18 at 03:11 PM ]
作者: zh159     时间: 2007-1-19 03:26
另,可以用:

echo off
start /w c:\"Program Files"\QQ\qq.exe

cmdow.exe @ /res
cmdow.exe @ /act


set /p v=是否备份QQ聊天纪录(y/n)?
if %v%==y (
start c:\"Program Files"\winrar\rar.exe A -ep1 d:\QQbak\QQbak.rar c:\"Program Files"\QQ\88513989 )


cmdow:
http://www.cn-dos.net/forum/viewthread.php?tid=26141
4 楼
作者: newworld     时间: 2007-1-19 12:40
真的非常感谢楼上的各位朋友的帮助!!!多谢了!!!虽然这个功能在高级语言里实现起来很容易,但是有许多时候的操作环境是只能用windows自己现成的东西,这时候就体现出批处理的绝对优势了,再次感谢!!!
作者: everest79     时间: 2007-1-19 21:27

@echo off
%1 %2
start /w c:\"Program Files"\QQ\qq.exe
start /i "" "%~nx0" goto msg
goto :eof
:msg
set /p v=是否备份QQ聊天纪录(y/n)?
if %v%==y (
start c:\"Program Files"\winrar\rar.exe A -ep1 d:\QQbak\QQbak.rar c:\"Program Files"\QQ\88513989 )