什么可以使暂停停止在批处理文件中工作?

时间:2014-06-16 08:25:47

标签: windows batch-file cmd

我对一个“暂停”声明感到疯狂,因为我没有使用批处理文件来清除病毒,因为病毒在我工作的地方很普遍。

我从我的研究中发现,当你调用另一个批处理文件并且它失败或有退出语句时会出现这样的问题,并使用“call”来防止它发生。

问题是,批处理文件继续运行,它不会停止,它运行得很好,但它只是忽略了除第一次暂停之外的所有事件。

另一件事是,当我使用@echo时,无论如何都无法工作。如果我REM @echo关闭并从cmd运行批处理,暂停将在第一次运行时失败,然后如果我再次运行它,那么暂停将正常工作。

尽管在互联网上寻找解决方案,但我似乎无法理解为什么会这样。

我只是因为它可能是其中一个原因而离开了虚荣名称/签名,但我确实尝试了它并且它仍然不起作用。

以下是代码:

@echo off
mode con: cols=80 lines=30
title USBFix by Tamok

:Signature
echo " __    __       _______..______    _______  __  ___   ___"
echo "|  |  |  |     /       ||   _  \  |   ____||  | \  \ /  /"
echo "|  |  |  |    |   (----`|  |_)  | |  |__   |  |  \  V  / "
echo "|  |  |  |     \   \    |   _  <  |   __|  |  |   >   <  "
echo "|  `--'  | .----)   |   |  |_)  | |  |     |  |  /  .  \ "
echo " \______/  |_______/    |______/  |__|     |__| /__/ \__\"
echo Par T. Tamok
echo Version 0.1
echo.
echo.
echo Bienvenue dans le programme de desinfection de clefs USB et volumes externes. Appuyez sur une touche pour continuer.
pause >nul
echo.
echo Voici une liste des disques reconnus sur votre ordinateur.
echo.
call wmic logicaldisk get caption,providername,drivetype,volumename
echo.

:Volume Check
    set /p vName=Veuillez saisir la lettre correspondant au volume que vous souhaitez reparer : 
    if not exist %vName%:\nul goto :failed

:Repair
    echo Appuyez sur une touche pour continuer la reparation ou fermez la fenetre pour quitter.
    pause >nul
    echo Reparation en cours, veuillez patienter...
    call attrib -h -r -s /s /d %vName%:\*.*
    echo Restauration des fichiers caches terminee. Suppression des fichiers infectes...
    if exist %vName%:\iTunesHelper.vbe goto :vbdel
    echo Pas de virus iTunesHelper.vbe.
    :keep1
    if exist %vName%:\*.lnk goto :lnkdel
    echo Pas de fichiers .lnk.
    :keep2
    goto :eof

:failed
    echo Cette lettre ne correspond a aucun volume. Appuyez sur une touche pour quitter.
    goto :eof

:vbdel
    del %vName%:\iTunesHelper.vbe
    echo Virus iTunesHelper.vbe repere.
    echo Suppression de iTunesHelper.vbe OK.
    goto keep1

:lnkdel
    del %vName%:\*.lnk
    echo Suppression des fichiers .lnk OK.
    goto keep2

:eof
    pause >nul
    :exit

1 个答案:

答案 0 :(得分:3)

:eof是CMD使用的文件的内部结尾,它将退出例程。

将其更改为其他标签。

以下是演示该功能的示例:

@echo off
echo start
goto :eof
echo this will never appear and pause will not function
pause