Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
pause temporaire
Auteur Message
Répondre en citant
Message pause temporaire 
Bonjour,
J'ai toujours mon batch auto modifiable mais en l'intégrant a un batch plus gros j'ai des erreurs. en mettant des pause a chaque étape je n'ai plus d'erreur. J'ai donc pensé a faire une pause temporaire. Comment faire?
Batch complet:
Code:

@set password=
@echo off
title Files Protect
color 9B

if "%password%"=="" goto CREATEMDP
if EXIST "Control Panel.{645FF040-5081-101B-9F08-00AA002F954E}" goto UNLOCK
if NOT EXIST ghost goto DOSCREATE
goto CHOICE

:CREATEMDP
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºEntrez un mot de passe.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
set/p "pass1=>"
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºComfirmez ce mot de passe.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
set/p "pass2=>"
if not %pass2%==%pass1% goto RATE
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºPatientez le temps de l'opération.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo for /F "skip=1 delims=" %%%%i in (%~nx0) do echo %%%%i^>^>temp2.bat >temp.bat
echo echo @set "password=%pass1%"^>%~nx0 >>temp.bat
echo for /F "delims=" %%%%i in (temp2.bat) do echo %%%%i^>^> %~nx0 >>temp.bat
echo del temp2.bat >>temp.bat
echo del temp.bat >>temp.bat
call temp.bat

echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºMot de passe enregistr‚.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
pause
goto END

:RATE
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºVous avez mal recopi‚ le mot de passe.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
pause
CLS
goto CREATE

:DOSCREATE
md ghost
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºDossier ghost cr‚‚.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
pause
goto END

:UNLOCK   
SetLocal DisableDelayedExpansion
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºEntrez le mot de passe.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Set "Line2="
Rem Salvar carater 0x08 na variável BS
For /F %%# In ('"Prompt;$H&For %%# in (1) Do Rem"') Do Set "BS=%%#"
:UNLOCKloop
Set "Key="
For /F "delims=" %%# In ('Xcopy /W "%~f0" "%~f0" 2^>Nul') Do If Not Defined Key Set "Key=%%#"
Set "Key=%Key:~-1%"
SetLocal EnableDelayedExpansion
If Not Defined Key Goto UNLOCKend
If %BS%==^%Key% (Set /P "=%BS% %BS%" <Nul
Set "Key="
If Defined Line2 Set "Line2=!Line2:~0,-1!"
) Else Set /P "=*" <Nul
If Not Defined Line2 (EndLocal &Set "Line2=%Key%"
) Else For /F delims^=^ eol^= %%# In ("!Line2!") Do EndLocal &Set "Line2=%%#%Key%"
Goto UNLOCKloop
:UNLOCKend
echo(
attrib -h -s "Control Panel.{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
ren "Control Panel.{20D04FE0-3AEA-1069-A2D8-08002B30309D}" passdos
for /f %%a in (passdos\pass.txt) do set PSW=%%a
if not !Line2!==%PSW% goto PASSERREUR
ren passdos "Control Panel.{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
attrib +h +s "Control Panel.{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
attrib -h -s "Control Panel.{645FF040-5081-101B-9F08-00AA002F954E}"
ren "Control Panel.{645FF040-5081-101B-9F08-00AA002F954E}" ghost
set madate=Ouverture du dossier ghost le %DATE:~0,2%/%DATE:~3,2%/%DATE:~6,4% à %TIME:~0,2%:%TIME:~3,2% par %USERNAME%
set separation=_______________________________________________________________________________________________
echo %separation%>>ghost\archive.txt
echo %madate%>>ghost\archive.txt
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºDossier d‚verrouill‚.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ   
pause
goto End

:PASSERREUR
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºLe mot de passe est incorrect.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
pause
goto END

:CHOICE
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºVoulez-vous verrouiller le dossier ghost (O/N). º
echo ºChanger le mot de passe (C) ou le Supprimer (S).º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
set/p "cho=>"
if %cho%==c goto CHANGE
if %cho%==C goto CHANGE
if %cho%==o goto LOCK
if %cho%==O goto LOCK
if %cho%==n goto END
if %cho%==N goto END
if %cho%==s goto SUPP
if %cho%==S goto SUPP
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºMauvais choix tapez O pour Verrouiller              º
echo º                    N pour Quitter                  º
echo º                    C pour Changer de mot de passe  º
echo º                 ou S pour Supprimer le mot de passeº
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
pause
CLS
goto CHOICE

:SUPP
SetLocal DisableDelayedExpansion
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºEntrez le mot de passe actuel.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Set "Line3="
Rem Salvar carater 0x08 na variável BS
For /F %%# In ('"Prompt;$H&For %%# in (1) Do Rem"') Do Set "BS=%%#"
:SUPPloop
Set "Key="
For /F "delims=" %%# In ('Xcopy /W "%~f0" "%~f0" 2^>Nul') Do If Not Defined Key Set "Key=%%#"
Set "Key=%Key:~-1%"
SetLocal EnableDelayedExpansion
If Not Defined Key Goto SUPPend
If %BS%==^%Key% (Set /P "=%BS% %BS%" <Nul
Set "Key="
If Defined Line3 Set "Line3=!Line3:~0,-1!"
) Else Set /P "=*" <Nul
If Not Defined Line3 (EndLocal &Set "Line3=%Key%"
) Else For /F delims^=^ eol^= %%# In ("!Line3!") Do EndLocal &Set "Line3=%%#%Key%"
Goto SUPPloop
:SUPPend
Echo(
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºPatientez le temps de l'opération.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo for /F "skip=1 delims=" %%%%i in (%~nx0) do echo %%%%i^>^>temp2.bat >temp.bat
echo echo @set "password="^>%~nx0 >>temp.bat
echo for /F "delims=" %%%%i in (temp2.bat) do echo %%%%i^>^> %~nx0 >>temp.bat
echo del temp2.bat >>temp.bat
echo del temp.bat >>temp.bat
call temp.bat
goto END

:CHANGE
SetLocal DisableDelayedExpansion
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºEntrez le mot de passe actuel.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Set "Line="
Rem Salvar carater 0x08 na variável BS
For /F %%# In ('"Prompt;$H&For %%# in (1) Do Rem"') Do Set "BS=%%#"
:CHANGEloop
Set "Key="
For /F "delims=" %%# In ('Xcopy /W "%~f0" "%~f0" 2^>Nul') Do If Not Defined Key Set "Key=%%#"
Set "Key=%Key:~-1%"
SetLocal EnableDelayedExpansion
If Not Defined Key Goto CHANGEend
If %BS%==^%Key% (Set /P "=%BS% %BS%" <Nul
Set "Key="
If Defined Line Set "Line=!Line:~0,-1!"
) Else Set /P "=*" <Nul
If Not Defined Line (EndLocal &Set "Line=%Key%"
) Else For /F delims^=^ eol^= %%# In ("!Line!") Do EndLocal &Set "Line=%%#%Key%"
Goto CHANGEloop
:CHANGEend
Echo(
attrib -h -s "Control Panel.{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
ren "Control Panel.{20D04FE0-3AEA-1069-A2D8-08002B30309D}" passdos
for /f %%a in (passdos\pass.txt) do set PSW=%%a
if not !Line!==%PSW% goto PASSRATE
ren passdos "Control Panel.{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
attrib +h +s "Control Panel.{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
CLS
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºEntrez le nouveau mot de passe.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
SET /p "REPONSE=>"
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºComfirmer le mot de passe.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ   
SET /P "REPONSE2=>"
IF NOT '%REPONSE2%' == '%REPONSE%' GOTO ERREUR
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºPatientez le temps de l'opération.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo for /F "skip=1 delims=" %%%%i in (%~nx0) do echo %%%%i^>^>temp2.bat >temp.bat
echo echo @set "password=%pass1%"^>%~nx0 >>temp.bat
echo for /F "delims=" %%%%i in (temp2.bat) do echo %%%%i^>^> %~nx0 >>temp.bat
echo del temp2.bat >>temp.bat
echo del temp.bat >>temp.bat
call temp.bat
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºMot de passe chang‚.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ   
goto END

:ERREUR
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºVous avez mal recopi‚ le mot de passe.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
pause
CLS
goto CHOICE

:PASSRATE
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºLe mot de passe est incorrect.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
pause
CLS
goto CHOICE

:LOCK
ren ghost "Control Panel.{645FF040-5081-101B-9F08-00AA002F954E}"
attrib +h +s "Control Panel.{645FF040-5081-101B-9F08-00AA002F954E}"
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºDossier verrouill‚.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ   
pause
goto END

:END


Voila un exemple de parti qui cause mes erreurs (il y en a 3 en tout):
Code:

:CREATEMDP
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºEntrez un mot de passe.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
set/p "pass1=>"
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºComfirmez ce mot de passe.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
set/p "pass2=>"
if not %pass2%==%pass1% goto RATE
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºPatientez le temps de l'opération.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo for /F "skip=1 delims=" %%%%i in (%~nx0) do echo %%%%i^>^>temp2.bat >temp.bat
echo echo @set "password=%pass1%"^>%~nx0 >>temp.bat
echo for /F "delims=" %%%%i in (temp2.bat) do echo %%%%i^>^> %~nx0 >>temp.bat
echo del temp2.bat >>temp.bat
echo del temp.bat >>temp.bat
call temp.bat

echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºMot de passe enregistr‚.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
pause
goto END

et enfin la même parti sans les erreur mais avec les pause:
Code:

:CREATEMDP
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºEntrez un mot de passe.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
set/p "pass1=>"
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºComfirmez ce mot de passe.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
set/p "pass2=>"
if not %pass2%==%pass1% goto RATE
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºPatientez le temps de l'opération.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

echo for /F "skip=1 delims=" %%%%i in (%~nx0) do echo %%%%i^>^>temp2.bat >temp.bat
echo pause>>temp.bat
echo echo @set "password=%pass1%"^>%~nx0 >>temp.bat
echo pause>>temp.bat
echo for /F "delims=" %%%%i in (temp2.bat) do echo %%%%i^>^> %~nx0 >>temp.bat
echo pause>>temp.bat
echo del temp2.bat >>temp.bat
echo pause>>temp.bat
echo del temp.bat >>temp.bat
pause
call temp.bat

echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ºMot de passe enregistr‚.º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
pause
goto END

je pense que l'erreur est du a la durée de la copie donc si vous avez une solution quelconque du moment que ce soit totalement automatique sans que l'utilisateur appui sur une touche je suis preneur.
Ps: c'est un logiciel pour faire disparaitre un dossier.



Skype
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message pause temporaire 
Bonjour

mettre un ping , consulte le syntaxe ping /? .




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message pause temporaire 
Merci pour ton aide



Skype
Répondre en citant
Message pause temporaire 
Ton code contient des erreurs et de mettre des pauses ça ne va pas les résoudres !

Ca peut juste fonctionner provisoirement.
Tes problèmes viennent "apparemment" de l'échapement de certain caractères que tu n'as pas fait.

Exemple :

Code:

echo for /F "skip=1 delims=" %%%%i in (%~nx0) do echo %%%%i^>^>temp2.bat >temp.bat


Doit être corrigé de cette façon :

Code:

echo for /F "skip=1 delims=" %%%%i in ^(%%^~nx0^) do echo %%%%i^>^>temp2.bat >temp.bat


Un code doit fonctionner sans artifice sinon il est foireux et tu auras des problèmes avec.




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message pause temporaire 
bonjour,
sachadee les échappement que tu ajoute rende mon code inutile car si on les met il ne se modifie plus lui même. La ligne que tu indique est pour sortir le contenu le temps du changement. car je ne dois changer que la 1ère ligne.
Citation:

Un code doit fonctionner sans artifice sinon il est foireux et tu auras des problèmes avec.

qu'est-ce qu'un artifice?



Skype
Répondre en citant
Message pause temporaire 
A ok j'ai saisie ce que tu voulais faire ! Effectivement en échappant les caractères ça va pas fonctionner.

"Un artifice" dans ton cas est de d'utiliser un pause, pour masquer un problème dans ton script.

A mon avis ton problème est du à une parenthèse ouverte et non refermée.

du style :
Code:

:CHANGEend
Echo(
attrib -h -s "Control Panel.{20D04FE0-3AEA-1069-A2D8-08002B30309D}"


Cherche, tu trouveras ! Ça doit marcher sans pause.

Amicalement




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Message pause temporaire 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch