Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[BATCH-VBS] AutoSave
Auteur Message
Répondre en citant
Message [BATCH-VBS] AutoSave 
Bonjour à tous,

Je rencontre un problème au boulot, sur un programme (AutoSave.bat) ; Je vous expliques Okay


Il faut faire un programme qui va copier les fichiers sur X vers le serveur situé en U: ; Mais attention, tous le monde ne possède pas le lecteur réseau U: ! ! !
Donc, il faut qu'il détecte ça, et donc, quand U: n'existe pas, il faut le créer.

Jusqu'à là, pas de soucis particuliers, if not exist "U:\" net use U: "\\BEIP-SIEG-DX1\%username" #EASY

Pour permettre à l'utilisateur de CHOISIR le dossier qui va donc être copié sur U: ; Hackoo à eu l'idée d'utiliser un BrowseFile, sur ça c'est exactement ce que je voulais, mais problème à celà, il faut récupérer le chemin d'accès (en gros si tu choisis Bureau, il faut récupérer "C:\Users\%username%\Desktop" dans la variable %Result%). En echo, ça fonctionne très bien, mais si vous testez le programme ci-dessous, vous verrez qu'il y a une petite erreur ^^

PS: Enlevez cette ligne là sinon ça fonctionnera pas à coups sûrs vu que vous n'êtes pas sur le réseau BEIP ^^

Citation:

if not exist "\\BEIP-SIEG-DX1\%username%" GOTO:ERROR_RSX


Donc voilà, le problème est: Où se trouve l'erreur & comment la réparer ? ...

Sur ce, vous avez le code dans mon Last commentaire, j'attends vos réponses Okay

Merci merci, AlonsO.

@+ Mr. Green

EDIT: J'ai entèrement modifié l'explication, j'éspères que c'est un peut plus clair maintenant, si ça ne l'est toujours pas assez, MP Me ou dites le moi en réponse Smile Thanks.



Dernière édition par AlonsO7798 le Lun 15 Sep 2014 - 14:37; édité 1 fois

______________________________________________________
Une question ? N'hésitez pas à me contacter par Message Privé ou via le topique concerné.
Visiter le site web du posteur
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [BATCH-VBS] AutoSave 
J'ai oublié une petite chose,

Savez vous comment "Connecter un lecteur réseau" s'il n'est pas connecté justement?

Merci




______________________________________________________
Une question ? N'hésitez pas à me contacter par Message Privé ou via le topique concerné.
Visiter le site web du posteur
Répondre en citant
Message [BATCH-VBS] AutoSave 
Bonjour

je vais relire ton sujet car je n 'ai pas compris la problèmatique de ton problème.

Pour connecter un lecteur réseau il faut te référer à l utilisation des commandes net /?

et notamment net use qui permet de monter un lecteur réseau

J ai relu mais pas réussi à tout comprendre désolé




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [BATCH-VBS] AutoSave 
Bonjour Laddy,

Désolée si ce n'était pas assez clair, mais effectivement, je vais tester la commande "net use" demain au boulot, on avait trouvé la solution avec Hackoo sur le chat Smile

Bref,

Sinon quelqu'un pour le reste ? x) Car Hackoo m'a aussi proposé un BrowseFile en vbs, mais impossible de récupérer la variable qu'il me faut...

Le code si quelqu'un est intéréssé, ps: ça renvoit un message d'erreur chez moi ...

Code:

 @Echo off
    setlocal
    Call :BrowseFolder "Definissez l'emplacement du dossier a sauvegarder" "C:\scripts\batch\"
   :: Suite...
   echo L'emplacement est:
   echo.
   echo %Result%
   pause>NUL
    endlocal
    Goto :EOF

    :BrowseFolder
    set Result=
    set vbs="%temp%\_.vbs"
    set cmd="%temp%\_.cmd"
    for %%f in (%vbs% %cmd%) do if exist %%f del %%f
    for %%g in ("vbs cmd") do if defined %%g set %%g=
    >%vbs% echo set WshShell=WScript.CreateObject("WScript.Shell")
    >>%vbs% echo set shell=WScript.CreateObject("Shell.Application")
    >>%vbs% echo set f=shell.BrowseForFolder(0,%1,0,%2)
    >>%vbs% echo if typename(f)="Nothing" Then 
    >>%vbs% echo wscript.echo "set Result=Dialog Cancelled"
    >>%vbs% echo WScript.Quit(1)
    >>%vbs% echo end if
    >>%vbs% echo set fs=f.Items():set fi=fs.Item()
    >>%vbs% echo p=fi.Path:wscript.echo "set Result=" ^& p
    cscript //nologo %vbs% > %cmd%
    for /f "delims=" %%a in (%cmd%) do %%a
    for %%f in (%vbs% %cmd%) do if exist %%f del %%f
    for %%g in ("vbs cmd") do if defined %%g set %%g=
    goto :eof


Merci merci Mr. Green




______________________________________________________
Une question ? N'hésitez pas à me contacter par Message Privé ou via le topique concerné.
Visiter le site web du posteur
Répondre en citant
Message [BATCH-VBS] AutoSave 
Salut,

Vu que mon message n'a pas l'air clair pour tous, je le ré-édite pour une meilleure compréhension Okay

En attendant, quelqu'un pourrait voir pourquoi le code me met une erreur justement ? ... Car j'ai bien avancé mais toujours une petite erreur ...

Voici le code:

Code:

::************************::
::        AutoSave_       ::
::    Par Xavier Pacio    ::
::************************::
:: --- Copyright 2014 --- ::
:: - ALL RIGHT RESERVED - ::
::************************::

:: NE PAS MODIFIER CELA
@echo off
Title AutoSave_%username% - BEIP
CALL:Advert_AS_1

::************************::
::     Début du code      ::
::************************::

:: Verification de l'existance de "\\BEIP-SIEG-DX1\%username%"
if not exist "\\BEIP-SIEG-DX1\%username%" GOTO:ERROR_RSX

:: Verification de la connection de "U:"
if not exist "U:\" GOTO:ERROR_DX1

:: Création du dossier Backup
if not exist "U:\Backup" mkdir "U:\Backup"

:: Création du dossier AutoSave situé ici "C:\AutoSave"
if not exist "C:\AutoSave" mkdir "C:\AutoSave"

:: Browse_File récupéré dans %Result%
setlocal & Call :BrowseFolder "Definissez l'emplacement du dossier a sauvegarder" "C:\scripts\batch\" & endlocal

:: Vérification de l'existance de %Result%
> "%Result%\AutoSave_Test.txt" echo Copie en cours...
if not exist "%Result%\AutoSave_Test.txt" GOTO:ERROR_BRF

:: Copie des fichiers dans "U:\Backup"
xcopy "%Result%" "U:\Backup" /E /I

:: Fin du programme
if not exist "%Result%\AutoSave_Test.txt" GOTO:ERROR_BRF
del /s "%Result%\AutoSave_Test.txt"
cls&call:Advert_AS_2&exit

EXIT rem Exit en cas d'erreur

::************************::
::      Espace_Calls      ::
::************************::

:: Advert_AS - Message d'avertissement de début de sauvegarde.
:Advert_AS_1
Set MyVBSFile=%tmp%\%~n0.vbs
echo. x = msgBox("/!\ Veuillez faire une Sauvegarde /!\", 0,"AutoSave - BEIP" ) > %MyVBSFile%
Start /wait %MyVBSFile% & del /s %MyVBSFile% & cls
GOTO:EOF

::Advert_AS - Message d'avertissement de fin de sauvegarde.
:Advert_AS_2
Set MyVBSFile=%tmp%\%~n0.vbs
echo. x = msgBox("/!\ Sauvergarde terminée /!\", 0,"AutoSave - BEIP" ) > %MyVBSFile%
Start /wait %MyVBSFile% & del /s %MyVBSFile% & cls
GOTO:EOF

EXIT rem Exit en cas d'erreur

::************************::
::      BrowseFolder      ::
::************************::
:BrowseFolder
set Result=
set vbs="%temp%\_.vbs"
set cmd="%temp%\_.cmd"
for %%f in (%vbs% %cmd%) do if exist %%f del %%f
for %%g in ("vbs cmd") do if defined %%g set %%g=
>%vbs% echo set WshShell=WScript.CreateObject("WScript.Shell")
>>%vbs% echo set shell=WScript.CreateObject("Shell.Application")
>>%vbs% echo set f=shell.BrowseForFolder(0,%1,0,%2)
>>%vbs% echo if typename(f)="Nothing" Then 
>>%vbs% echo wscript.echo "set Result=Dialog Cancelled"
>>%vbs% echo WScript.Quit(1)
>>%vbs% echo end if
>>%vbs% echo set fs=f.Items():set fi=fs.Item()
>>%vbs% echo p=fi.Path:wscript.echo "set Result=" ^& p
cscript //nologo %vbs% > %cmd%
for /f "delims=" %%a in (%cmd%) do %%a
for %%f in (%vbs% %cmd%) do if exist %%f del %%f
for %%g in ("vbs cmd") do if defined %%g set %%g=
goto :eof

EXIT rem Exit en cas d'erreur

::************************::
::     Retour_Erreurs     ::
::************************::
:ERROR_RSX
COLOR C
echo.
echo   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo   º      AutoSave_      º
echo   ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo   Error (0): Le reseau ne vous reconnait pas !
echo   ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
echo.
echo Si le probleme persiste, veuillez contacter un Administrateur.
echo.
echo.
echo.
echo Press any key...
PAUSE>NUL & EXIT
:ERROR_DX1
COLOR C&net use U: "\\BEIP-SIEG-DX1\%username%"&cls
echo.
echo   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo   º      AutoSave_      º
echo   ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo   Error (1): Le dossier n'existe pas !
echo   ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
echo.
echo Si le probleme persiste, veuillez contacter un Administrateur.
echo.
echo.
echo.
echo Press any key...
PAUSE>NUL & EXIT
:ERROR_BRF
COLOR C
echo.
echo   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo   º      AutoSave_      º
echo   ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo   Error (2): Error_BrowseFile !
echo   ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
echo.
echo Si le probleme persiste, veuillez contacter un Administrateur.
echo.
echo.
echo.
echo Press any key...
PAUSE>NUL & EXIT

:: Logiciel par Xavier PACIO ; Copyright 2014 - All right reserved.
:: Fin du programme, EXIT.


Je pense que ça merde à ce niveau là

Code:

:: Vérification de l'existance de %Result%
> "%Result%\AutoSave_Test.txt" echo Copie en cours...
if not exist "%Result%\AutoSave_Test.txt" GOTO:ERROR_BRF

:: Copie des fichiers dans "U:\Backup"
xcopy "%Result%" "U:\Backup" /E /I

:: Fin du programme
if not exist "%Result%\AutoSave_Test.txt" GOTO:ERROR_BRF
del /s "%Result%\AutoSave_Test.txt"
cls&call:Advert_AS_2&exit


Car même quand il y a une erreur, ça met quand même le message 'Sauvegarde terminée' ... Donc, par défault, sur "C:\" ...
Bref, si vous avez une idée, n'hésitez pas .. Okay
Merci pour vos réponses Okay Mr. Green




______________________________________________________
Une question ? N'hésitez pas à me contacter par Message Privé ou via le topique concerné.
Visiter le site web du posteur
Répondre en citant
Message [BATCH-VBS] AutoSave 
Voici le code fonctionnel Okay :mrgree:

Grand merci à Hackoo pour son aide !

Code:

::************************::
::        AutoSave_       ::
::    Par Xavier Pacio    ::
::************************::
:: --- Copyright 2014 --- ::
:: - ALL RIGHT RESERVED - ::
::************************::

:: NE PAS MODIFIER CELA
@echo off
Title AutoSave_%username% - BEIP
CALL:Advert_AS_1

::************************::
::     Début du code      ::
::************************::

:: Verification de l'existance de "\\BEIP-SIEG-DX1\%username%"
if not exist "\\BEIP-SIEG-DX1\%username%" GOTO:ERROR_RSX

:: Verification de la connection de "U:"
if not exist "U:\" GOTO:ERROR_DX1

:: Création du dossier Backup
if not exist "U:\Backup" mkdir "U:\Backup"

:: Création du dossier AutoSave situé ici "C:\AutoSave"
if not exist "C:\AutoSave" mkdir "C:\AutoSave"

:: Browse_File récupéré dans %Result%
Call :BrowseFolder "Definissez l'emplacement du dossier a sauvegarder" "C:\scripts\batch\"

:: Vérification de l'existance de %Result%
> "%Result%\AutoSave_Test.txt" echo Copie en cours...
if not exist "%Result%\AutoSave_Test.txt" GOTO:ERROR_BRF

:: Copie des fichiers dans "U:\Backup"
xcopy "%Result%" "U:\Backup" /E /I

:: Fin du programme
if not exist "%Result%\AutoSave_Test.txt" GOTO:ERROR_BRF
del /s "%Result%\AutoSave_Test.txt"
cls&call:Advert_AS_2&exit

EXIT rem Exit en cas d'erreur

::************************::
::      Espace_Calls      ::
::************************::

:: Advert_AS - Message d'avertissement de début de sauvegarde.
:Advert_AS_1
Set MyVBSFile=%tmp%\%~n0.vbs
echo. x = msgBox("/!\ Veuillez faire une Sauvegarde /!\", 0,"AutoSave - BEIP" ) > %MyVBSFile%
Start /wait %MyVBSFile% & del /s %MyVBSFile% & cls
GOTO:EOF

::Advert_AS - Message d'avertissement de fin de sauvegarde.
:Advert_AS_2
Set MyVBSFile=%tmp%\%~n0.vbs
echo. x = msgBox("/!\ Sauvergarde terminée /!\", 0,"AutoSave - BEIP" ) > %MyVBSFile%
Start /wait %MyVBSFile% & del /s %MyVBSFile% & cls
GOTO:EOF

EXIT rem Exit en cas d'erreur

::************************::
::      BrowseFolder      ::
::************************::
:BrowseFolder
set Result=
set vbs="%temp%\_.vbs"
set cmd="%temp%\_.cmd"
for %%f in (%vbs% %cmd%) do if exist %%f del %%f
for %%g in ("vbs cmd") do if defined %%g set %%g=
>%vbs% echo set WshShell=WScript.CreateObject("WScript.Shell")
>>%vbs% echo set shell=WScript.CreateObject("Shell.Application")
>>%vbs% echo set f=shell.BrowseForFolder(0,%1,0,%2)
>>%vbs% echo if typename(f)="Nothing" Then 
>>%vbs% echo wscript.echo "set Result=Dialog Cancelled"
>>%vbs% echo WScript.Quit(1)
>>%vbs% echo end if
>>%vbs% echo set fs=f.Items():set fi=fs.Item()
>>%vbs% echo p=fi.Path:wscript.echo "set Result=" ^& p
cscript //nologo %vbs% > %cmd%
for /f "delims=" %%a in (%cmd%) do %%a
for %%f in (%vbs% %cmd%) do if exist %%f del %%f
for %%g in ("vbs cmd") do if defined %%g set %%g=
goto :eof

EXIT rem Exit en cas d'erreur

::************************::
::     Retour_Erreurs     ::
::************************::
:ERROR_RSX
COLOR C
echo.
echo   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo   º      AutoSave_      º
echo   ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo   Error (0): Le reseau ne vous reconnait pas !
echo   ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
echo.
echo Verifiez votre connexion internet et relancez le programme.
echo.
echo Si le probleme persiste, veuillez contacter un Administrateur.
echo.
echo Press any key...
PAUSE>NUL & EXIT
:ERROR_DX1
COLOR C&net use U: "\\BEIP-SIEG-DX1\%username%"&cls
echo.
echo   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo   º      AutoSave_      º
echo   ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo   Error (1): Le dossier n'existe pas !
echo   ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
echo.
echo Si le probleme persiste, veuillez contacter un Administrateur.
echo.
echo.
echo.
echo Press any key...
PAUSE>NUL & EXIT
:ERROR_BRF
COLOR C
echo.
echo   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo   º      AutoSave_      º
echo   ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo   Error (2): Error_BrowseFile !
echo   ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
echo.
echo Si le probleme persiste, veuillez contacter un Administrateur.
echo.
echo.
echo.
echo Press any key...
PAUSE>NUL & EXIT

:: Logiciel par Xavier PACIO ; Copyright 2014 - All right reserved.
:: Fin du programme, EXIT.




Dernière édition par AlonsO7798 le Lun 15 Sep 2014 - 19:33; édité 1 fois

______________________________________________________
Une question ? N'hésitez pas à me contacter par Message Privé ou via le topique concerné.
Visiter le site web du posteur
Répondre en citant
Message [BATCH-VBS] AutoSave 
Salut AlonsO7798 Laughing
Remplaçes cette ligne
Code:
setlocal & Call :BrowseFolder "Definissez l'emplacement du dossier a sauvegarder" "C:\scripts\batch\" & endlocal
par celle-ci
Code:
Call :BrowseFolder "Definissez l'emplacement du dossier a sauvegarder" "C:\scripts\batch\"
echo %Result%





______________________________________________________
Mes Contributions en Téléchargement
Répondre en citant
Message [BATCH-VBS] AutoSave 
@Hackoo: NICKEL ! Merci encore ^^




______________________________________________________
Une question ? N'hésitez pas à me contacter par Message Privé ou via le topique concerné.
Visiter le site web du posteur
Message [BATCH-VBS] AutoSave 


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