Dos / Batch *********** Quelques scripts Ms-Dos indispensable déplacement dans un répertoire d'un autre disque ================================================ le plus compliqué .. code-block:: bash @echo on cd G: cd G:\test la plus rapide .. code-block:: bash @echo on pushd G:\test sauvegarde de fichier ===================== déplacement de fichier dans un répertoire généré à partir de l’heure système .. code-block:: bash @echo on for /F "tokens=2,3,4 delims=/ " %%i in ('date /T') do set jour=%%i%%j%%k for /F "tokens=1,2 delims=: " %%i in ('time /T') do set heure=%%i%%j set DIRNAME=E:\svg\%jour%%heure% md %DIRNAME% move C:\WINNT\Temp\*.xml %DIRNAME% exit /b 0 envoi de fichier dans une imprimante ==================================== boucle qui prend un par un les fichiers xml à traiter .. code-block:: bash @echo on for %%a in (*.xml) do copy %%a \\W2KSE08\EComPresentSAPXML gestion d'un programme en sous programme et gestion des paramètres ================================================================== cet exemple permet de voir comment ou peut: * créer des sous programme * gérer des paramètres (ici /silent) .. code-block:: bash @ECHO off cd Create_Synchronicity if "%1" =="/silent" goto silent goto normal :normal MSGBOX.EXE "Synchronisation de votre cle usb\n\nVoulez vous continuer ?" "Synchronisation" OKCANCEL if errorlevel 1 goto yes goto fin :yes Create_Synchronicity.exe /silent /run MYDOC Create_Synchronicity.exe /silent /run MECAPACK Create_Synchronicity.exe /silent /run PASSWORD Create_Synchronicity.exe /silent /run PROJECT MSGBOX.EXE "Synchronisation Terminee" "Synchronisation" goto fin :silent Create_Synchronicity.exe /silent /run MYDOC Create_Synchronicity.exe /silent /run MECAPACK Create_Synchronicity.exe /silent /run PASSWORD Create_Synchronicity.exe /silent /run PROJECT goto fin :fin exit gestion des variables ===================== .. code-block:: bash @echo on set iss=innosetup.iss "C:\Program Files\Inno Setup 5\"Compil32.exe /cc %iss% gestion d'un if =============== .. code-block:: bash @echo off set /a counter=0 :numbers set /a counter=%counter%+1 if %counter% ==100 (goto :eof) else (echo %counter% >> E:\count.txt) goto :numbers gestion d'une boucle for ======================== .. code-block:: bash @echo off for /l %%X in (1,1,99) do (echo %%X >> E:\count.txt) boucle avec une liste .. code-block:: bash for %%X in (eenie meenie miney moe) do (echo %%X) boucle sur les répertoire .. code-block:: bash for /d %%X in (C:\*) do echo %%X de façon récursive .. code-block:: bash for /r C:\photos %%X in (*.jpg) do (echo %%X >> E:\listeJPG.txt) faire une boucle while ====================== .. code-block:: bash @ECHO OFF :toto sleep 10 echo "un tour" goto toto gestion d'un liste ================== .. code-block:: bash @echo on set liste=innosetup.iss,aboutTiddlyNote.html for %%a in (%liste%) do ( echo %%a ) tester l'existence d'un fichier =============================== .. code-block:: bash @echo on if exist G:\Create_Synchronicity\tutu.exe goto valid goto novalid :valid echo "le fichier existe" goto fin :novalid echo "le fichier n'existe" goto fin :fin exit pour tester la non existence .. code-block:: bash @echo on if not exist G:\Create_Synchronicity\tutu.exe goto valid gestion des retours =================== .. code-block:: bash @echo off MSGBOX.EXE "This is a sample message.\n\nDo you want to continue ?" "MessageBox Test" YESNOCANCEL REM MSGBOX.EXE "This is a sample message.\n\nDo you want to continue ?" "MessageBox Test" OKCANCEL REM MSGBOX.EXE "This is a sample message.\n\nDo you want to continue ?" "MessageBox Test" YESNO REM MSGBOX.EXE "This is a sample message.\n\nJust click on the button." eco %errorlevel% if errorlevel 3 goto NO if errorlevel 1 goto YES if errorlevel 2 goto CANCEL goto fin :no echo You don't want to continue. goto fin :yes echo You want to continue. goto fin :cancel echo You don't want to go further. goto fin :ok echo ok goto fin :fin MSGBOX.EXE "You can edit the example.bat to test the syntax." Exemple de script avec relation utilisateur =========================================== .. code-block:: bash @echo off REM Copyright (c) 2012, EnterpriseDB Corporation. All rights reserved REM PostgreSQL server psql runner script for Windows SET server=localhost SET /P server="Server [%server%]: " SET database=postgres SET /P database="Database [%database%]: " SET port=5432 SET /P port="Port [%port%]: " SET username=postgres SET /P username="Username [%username%]: " for /f "delims=" %%a in ('chcp ^|find /c "932"') do @ SET CLIENTENCODING_JP=%%a if "%CLIENTENCODING_JP%"=="1" SET PGCLIENTENCODING=SJIS if "%CLIENTENCODING_JP%"=="1" SET /P PGCLIENTENCODING="Client Encoding [%PGCLIENTENCODING%]: " REM Run psql "C:\Program Files\PostgreSQL\9.2\bin\psql.exe" -h %server% -U %username% -d %database% -p %port% pause