A voir également:
- Deux commandes dos dans un fichier bat
- Fichier rar - Guide
- Fichier bat - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Comment réduire la taille d'un fichier - Guide
7 réponses
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
5 juil. 2009 à 19:34
5 juil. 2009 à 19:34
Bonsoir,
Si j'ai bien compris le problème ?
J'ai fait quelques tests dont ceux-ci, je n'ai pas rencontré de problème particulier semble-t-il. Je n'ai pas pu testé rcp.exe dans sa finalité, à l'exécution il affiche le help !!!!.
RESULTATS avec rcp.exe qmdslqjdmfqd:
RESULTATS avec call x.bat qmdslqjdmfqd:
Si j'ai bien compris le problème ?
J'ai fait quelques tests dont ceux-ci, je n'ai pas rencontré de problème particulier semble-t-il. Je n'ai pas pu testé rcp.exe dans sa finalité, à l'exécution il affiche le help !!!!.
echo off SETLOCAL ENABLEdelayedExpansion SETLOCAL ENABLEextensions CLS Set "NETUSR=set NETUSER=blabla" echo Test contenu de NETUSR: %NETUSR% set "CommRCP=rcp.exe qmdslqjdmfqd" rem set "CommRCP=call x.bat qmdslqjdmfqd" echo Test contenu de CommRCP: %CommRCP% pause set "CommandLine=%NETUSR%&&%CommRCP%" echo "Test contenu de CommandLine: %CommandLine%" pause %CommandLine% echo Test contenu de NETUSER: %NETUSER% goto :EOF
RESULTATS avec rcp.exe qmdslqjdmfqd:
Test contenu de NETUSR: set NETUSER=blabla Test contenu de CommRCP: rcp.exe qmdslqjdmfqd Appuyez sur une touche pour continuer... "Test contenu de CommandLine: set NETUSER=blabla&&rcp.exe qmdslqjdmfqd" Appuyez sur une touche pour continuer... Copie les fichiers depuis et vers l'ordinateur exécutant le service RCP. (!!!!!!!!!!!!) RCP [-a | -b] [-h] [-r] [host][.user:]source [host][.user:] path\destination -a Spécifie le mode de transfert ASCII. Ce mode convertit les caractères EOL en retours chariot sous UNIX et en retours chariot/line feed sur PC. C'est le mode de transfert par défaut. -b Spécifie le mode de transfert d'images binaire. -h Transfère les fichiers cachés. -r Copie le contenu de tous les sous-répertoires ; la destination doit être un répertoire. host Spécifie l'hôte local ou distant. Si l'hôte spécifié est une adresse IP, vous devez spécifier l'utilisateur. .user: Spécifie le nom d'utilisateur à utiliser à la place du nom d'utilisateur en cours. source Spécifie les fichiers à copier. path\destination Spécifie le chemin relatif au répertoire de session sur l'hôte distant. Utilisez les caractères d'échappement (\ , ", ou ') dans les chemins distants pour utiliser les caractères jokers sur l'hôte distant. Test contenu de NETUSER: blabla
RESULTATS avec call x.bat qmdslqjdmfqd:
Test contenu de NETUSR: set NETUSER=blabla Test contenu de CommRCP: call x.bat qmdslqjdmfqd Appuyez sur une touche pour continuer... "Test contenu de CommandLine: set NETUSER=blabla&&call x.bat qmdslqjdmfqd" Appuyez sur une touche pour continuer... Nous sommes passés dans x.bat qmdslqjdmfqd (<== message renvoyé par x.bat) Test contenu de NETUSER: blabla
Merci CChristian pour ton aide,
il semble qu'avec ton exemple cela ne fonctionne pas mieux :
echo off
SETLOCAL ENABLEdelayedExpansion rem <--- commande SETLOCAL n'est pas reconnue
SETLOCAL ENABLEextensions rem <--- commande SETLOCAL n'est pas reconnue
CLS
SET "NETUSR=set NETUSER=blabla"
ECHO Test contenu de NETUSR: %NETUSR% rem <-- renvoye bien set NETUSER=blabla"
SET "CommRCP=rcp.exe qmdslqjdmfqd"
ECHO Test contenu de CommRCP: %CommRCP% rem <-- renvoye bien rcp.exe qmdslqjdmfqd"
SET "CommandLine=%NETUSR%&&%CommRCP%"
ECHO "Test contenu de CommandLine: %CommandLine%" rem <-- renvoye uniquement set NETUSER=blabla"
rem
rem %CommandLine%
rem echo Test contenu de NETUSER: %NETUSER%
goto :EOF
il semble qu'avec ton exemple cela ne fonctionne pas mieux :
echo off
SETLOCAL ENABLEdelayedExpansion rem <--- commande SETLOCAL n'est pas reconnue
SETLOCAL ENABLEextensions rem <--- commande SETLOCAL n'est pas reconnue
CLS
SET "NETUSR=set NETUSER=blabla"
ECHO Test contenu de NETUSR: %NETUSR% rem <-- renvoye bien set NETUSER=blabla"
SET "CommRCP=rcp.exe qmdslqjdmfqd"
ECHO Test contenu de CommRCP: %CommRCP% rem <-- renvoye bien rcp.exe qmdslqjdmfqd"
SET "CommandLine=%NETUSR%&&%CommRCP%"
ECHO "Test contenu de CommandLine: %CommandLine%" rem <-- renvoye uniquement set NETUSER=blabla"
rem
rem %CommandLine%
rem echo Test contenu de NETUSER: %NETUSER%
goto :EOF
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
6 juil. 2009 à 22:42
6 juil. 2009 à 22:42
J'ai recréé le cas (l'un des cas ?) en supprimant les doubles quotes de l'instruction :
set "CommandLine=%NETUSR%&&%CommRCP%"
set "CommandLine=%NETUSR%&&%CommRCP%"
"Test contenu de CommandLine: set NETUSER=blabla" (<== il en manque....) Appuyez sur une touche pour continuer...
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
6 juil. 2009 à 17:13
6 juil. 2009 à 17:13
Bonjour,
Surprenant en effet cela fonctionne chez moi. Restait les commandes SETLOCAL qui, chez toi ne sont pas reconnues mais je viens de faire un essai en les supprimant et c'est bon ! Je ne comprends pas, je vais regarder encore.
Surprenant en effet cela fonctionne chez moi. Restait les commandes SETLOCAL qui, chez toi ne sont pas reconnues mais je viens de faire un essai en les supprimant et c'est bon ! Je ne comprends pas, je vais regarder encore.
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
6 juil. 2009 à 18:55
6 juil. 2009 à 18:55
message annulé par moi-même double emploi avec le précédent qui avait disparu !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci encore pour ton aide, j'ouvre un deuxième post pour un autre problème dans un fichier bat ^^ au cas ou tu peux m'aider aussi.
Je mets au propre mon fichier bat et je le post ici ce sera peut etre mieux :)
Je mets au propre mon fichier bat et je le post ici ce sera peut etre mieux :)
C'est cool je me répond a moi même :)
Je testerai dans la journée mais je viends de me souvenir qu'il y a des caractères spéciaux en bat
&<>|^% et peut etre d'autre il faut echappé ces caractères sinon ils sont pris comme commande interne. Pour cela il faut inséré ^ devant chaque caractère que l'on veut garder exemple
^& ^< ^> ^| ^^ ^%
Je dirai si cela fonctionne en mettant le ^ dans ma ligne de commande CommandLine
Je testerai dans la journée mais je viends de me souvenir qu'il y a des caractères spéciaux en bat
&<>|^% et peut etre d'autre il faut echappé ces caractères sinon ils sont pris comme commande interne. Pour cela il faut inséré ^ devant chaque caractère que l'on veut garder exemple
^& ^< ^> ^| ^^ ^%
Je dirai si cela fonctionne en mettant le ^ dans ma ligne de commande CommandLine
Bonjour à toutes et tous,
J'ai trouvé et maintenant cela fonctionne
set ComNET=set NETUSER=%NET_USR%
set COMRCP=%LOCAL_PATH%\rcp.exe %LOCAL_FILE% %LOCAL_USR%@%RR_HOST%:%RR_PATH%/%RR_DEST_FILE%
set ComLineRCP=%ComNET%^&^&%COMRCP%
set ComRSH=%LOCAL_PATH%\rsh.exe %RR_HOST% -l %LOCAL_USR% chmod a+rw %RR_PATH%/%RR_DEST_FILE% ; touch %RR_PATH%/%LEFT_RR_DEST_FILE%flg; chmod a+rw %RR_PATH%/%LEFT_RR_DEST_FILE%flg
set ComLineRSH=%ComNET%^&^&%ComRSH%
echo ****************************** BEGIN **************************************** >> %LOG_FILE%
echo ** Timestamp.....: %date% %time% >> %LOG_FILE%
echo ** Publish name..: %PUBLISH_NAME% >> %LOG_FILE%
echo ******************************************************************************* >> %LOG_FILE%
echo ** Commande RCP : %COMRCP% >> %LOG_FILE%
echo ******************************************************************************* >> %LOG_FILE%
echo ** Commande RSH : %ComRSH% >> %LOG_FILE%
echo ******************************************************************************* >> %LOG_FILE%
echo ** %date% %time% : "Begin.... RCP" >> %LOG_FILE%
%ComLineRCP%
if ERRORLEVEL 1 goto :errorRCP
SLEEP %TEMPO_COM%
echo ** %date% %time% : "Begin.... RSH" >> %LOG_FILE%
%ComLineRSH%
if ERRORLEVEL 1 goto :errorRSH
SLEEP %TEMPO_END%
echo ** %DONE% : %date% %time% >> %LOG_FILE%
echo ______________________________ END ________________________________________ >> %LOG_FILE%
Encore merci à ceux qui auraient pu m'aider ou qui ont lu le post pour s'intéresser :)
J'ai trouvé et maintenant cela fonctionne
set ComNET=set NETUSER=%NET_USR%
set COMRCP=%LOCAL_PATH%\rcp.exe %LOCAL_FILE% %LOCAL_USR%@%RR_HOST%:%RR_PATH%/%RR_DEST_FILE%
set ComLineRCP=%ComNET%^&^&%COMRCP%
set ComRSH=%LOCAL_PATH%\rsh.exe %RR_HOST% -l %LOCAL_USR% chmod a+rw %RR_PATH%/%RR_DEST_FILE% ; touch %RR_PATH%/%LEFT_RR_DEST_FILE%flg; chmod a+rw %RR_PATH%/%LEFT_RR_DEST_FILE%flg
set ComLineRSH=%ComNET%^&^&%ComRSH%
echo ****************************** BEGIN **************************************** >> %LOG_FILE%
echo ** Timestamp.....: %date% %time% >> %LOG_FILE%
echo ** Publish name..: %PUBLISH_NAME% >> %LOG_FILE%
echo ******************************************************************************* >> %LOG_FILE%
echo ** Commande RCP : %COMRCP% >> %LOG_FILE%
echo ******************************************************************************* >> %LOG_FILE%
echo ** Commande RSH : %ComRSH% >> %LOG_FILE%
echo ******************************************************************************* >> %LOG_FILE%
echo ** %date% %time% : "Begin.... RCP" >> %LOG_FILE%
%ComLineRCP%
if ERRORLEVEL 1 goto :errorRCP
SLEEP %TEMPO_COM%
echo ** %date% %time% : "Begin.... RSH" >> %LOG_FILE%
%ComLineRSH%
if ERRORLEVEL 1 goto :errorRSH
SLEEP %TEMPO_END%
echo ** %DONE% : %date% %time% >> %LOG_FILE%
echo ______________________________ END ________________________________________ >> %LOG_FILE%
Encore merci à ceux qui auraient pu m'aider ou qui ont lu le post pour s'intéresser :)