Dos / Batch¶
Quelques scripts Ms-Dos indispensable
déplacement dans un répertoire d’un autre disque¶
le plus compliqué
@echo on
cd G:
cd G:\test
la plus rapide
@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
@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
@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)
@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¶
@echo on
set iss=innosetup.iss
"C:\Program Files\Inno Setup 5\"Compil32.exe /cc %iss%
gestion d’un if¶
@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¶
@echo off
for /l %%X in (1,1,99) do (echo %%X >> E:\count.txt)
boucle avec une liste
for %%X in (eenie meenie miney moe) do (echo %%X)
boucle sur les répertoire
for /d %%X in (C:\*) do echo %%X
de façon récursive
for /r C:\photos %%X in (*.jpg) do (echo %%X >> E:\listeJPG.txt)
faire une boucle while¶
@ECHO OFF
:toto
sleep 10
echo "un tour"
goto toto
gestion d’un liste¶
@echo on
set liste=innosetup.iss,aboutTiddlyNote.html
for %%a in (%liste%) do (
echo %%a
)
tester l’existence d’un fichier¶
@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_Synchronicitytutu.exe goto valid
gestion des retours¶
@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¶
@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