POINTBAT : Q-R

- J'ai lu quelque part que toutes les variables devaient être en majuscule, non pas que les minuscules fonctionnent moins bien, mais c'est une norme
- En ligne de commande utilise %. Dans un programme bat, utilise %%

10. Renomme tes photos avec les infos Exif ?

Télécharge les 2 fichiers suivant :
En - ExifRen - Renommer des photos avec les infos Exif -> DateTime (gratuit)
En - JHead - Renommer des photos avec les infos Exif -> DateTimeOriginal (gratuit)

puis crée le programme suivant :

ExifRen.exe" *.jpg
jhead.exe" -n%%Y%%m%%d_%%H%%M%%S *.jpg
Le résulats sera du genre 20031012_173440.jpg (date inversée + heure)

ExifRen renomme les photos avec les infos Exif -> DateTime et JHeaf renomme les photos avec les infos Exif -> DateTimeOriginal
je le fais avec 2 programmes différents car j'ai eu des problèmes avec des noms court avec le programme JHead.
Si tu trouves une meilleur méthode, écris-moi, pour la faire partager à tous.

9. Comment récupérer le jour, le mois, l'année, l'heure et la minute dans des variables différentes

Si tu as Windows NT, 2000 ou XP :

Prérequis : Il faut adapter ce batch au format de la date qui dépend de la langue de ton ordinateur

Récupérer la date dans les variables %SEMAINE, %JOUR%, %MOIS et %ANNEE%

Le format de la date est "jeu. 05/02/2004"

echo %DATE:~5,2%--%DATE:~8,2%--%DATE:~11,4%

ou

FOR /F "TOKENS=1,2,3,4 DELIMS=./ " %%A IN ('DATE/T') DO (
set SEMAINE=%%A
set JOUR=%%B
set MOIS=%%C
set ANNEE=%%D
)

Récupérer l'heure dans les variables %HEURE% et  %MINUTE%

Le format de l'heure est "15:24:23,87"

echo %TIME:~0,2%--%TIME:~3,2%--%TIME:~6,2%--%TIME:~9,2%

ou

FOR /F "TOKENS=1,2 DELIMS=:" %%A IN ('TIME/T') DO (
set HEURE=%%A
set MINUTE=%%B
)

Si tu as Windows 9x :

%comspec% /c for %%v in (1 2) do prompt set date$q$d$_ | find/v "$"> Date.txt
%comspec% /c for %%v in (1 2) do prompt set time$q$t$_ | find/v "$"> Heure.txt
Programme :
Pour plus de précision, download le programme XSET sur la page http://www.hamakers.nl/download.htm, qui permet de récupérer beaucoup de variables sur ton pc, dont la date et l'heure en détails

8. Est-il possible de changer la date du PC, ensuite de lancer un programme et de retrouver la bonne date du jour par la suite ?

Si tu as Windows NT, 2000 ou XP :

Prérequis : Il faut adapter ce batch au format de la date qui dépend de la langue de ton ordinateur

Crée le fichier Change.bat dans lequel tu remplaces"::programme.exe" par le programme que tu veux lancer.

@echo off
FOR /F "TOKENS=2 DELIMS= " %%A IN ('DATE/T') DO echo %%A

echo 09/01/2003>dateold.txt
date < dateold.txt
echo.
echo La date est changée en 09/01/2003 et le programme se lance

::programme.exe

pause
date < datenew.txt
echo.
echo La date est changée en celle du jour et le batch se termine

Si tu as Windows 9x :

Prérequis 1 : Pour ce batch tu as besoin de SrWin qui se trouve dans PointBat.zip
Prérequis 2 : Respecte les répertoires
Prérequis 3 : Il faut adapter ce batch au format de la date qui dépend de la langue de ton ordinateur

Crée le fichier Change.bat dans le répertoire "C:\Prog" dans lequel tu remplaces "::programme.exe" par le programme que tu veux lancer.

@echo off
%comspec% /c for %%v in (1 2) do prompt $d$_ | find/v "$" | find "/"> "datenew.txt"
Srwcons /D:"C:\Prog" /F:"datenew.txt" /S:"lun. " /R:""
Srwcons /D:"C:\Prog" /F:"datenew.txt" /S:"mar. " /R:""
Srwcons /D:"C:\Prog" /F:"datenew.txt" /S:"mer. " /R:""
Srwcons /D:"C:\Prog" /F:"datenew.txt" /S:"jeu. " /R:""
Srwcons /D:"C:\Prog" /F:"datenew.txt" /S:"ven. " /R:""
Srwcons /D:"C:\Prog" /F:"datenew.txt" /S:"sam. " /R:""
Srwcons /D:"C:\Prog" /F:"datenew.txt" /S:"dim. " /R:""

echo 09/01/2003>dateold.txt
date < dateold.txt
echo.
echo La date est changée en 09/01/2003 et le programme se lance

::programme.exe

pause
date < datenew.txt
echo.
echo La date est changée en celle du jour et le batch se termine

7. Comment faire un batch qui permet de sauvegarder les fichiers *.jpg du répertoire et des sous-répertoires de "C:\Mes Documents" dans le répertoire "C:\PointBat" ?

Si tu as Windows NT, 2000 ou XP :

Crée le fichier "Sauve.bat" qui contient :
xcopy "C:\Mes Documents\*.jpg" "C:\PointBat\*.*" /s
ou
FOR /R "C:\Mes Documents\" %%f IN (*.jpg) DO xcopy "%%f" "C:\PointBat\*.*"
Les fichier *.jpg du répertoire et des sous-répertoire de "C:\Mes Documents" seront copier dans le répertoire "C:\PointBat"

Si tu as Windows 9x :

Prérequis 1 : Pour ce batch tu as besoin de SrWin qui se trouve dans PointBat.zip

Crée le fichier "Sauve.bat" dans le répertoire "C:\PointBat" (respecte bien le répertoire) qui contient :

dir "C:\Mes Documents" /b/s>"!PointBatTree.txt"

find /i ".jpg"<"!PointBatTree.txt">"!PointBatTree.bat"

>"C:\PointBat\!PointBatSR.cfg" echo #srwin autoconfig file
>>"C:\PointBat\!PointBatSR.cfg" echo #this file was automatically generated by srwin
>>"C:\PointBat\!PointBatSR.cfg" echo #Tuesday, April 13, 1999, 05:25:46 PM
>>"C:\PointBat\!PointBatSR.cfg" echo StartDir=C:\PointBat
>>"C:\PointBat\!PointBatSR.cfg" echo FileType=!PointBatTree.bat
>>"C:\PointBat\!PointBatSR.cfg" echo SearchString=C:\
>>"C:\PointBat\!PointBatSR.cfg" echo ReplaceString=Xcopy "C:\
>>"C:\PointBat\!PointBatSR.cfg" echo ProcessROFiles=1
>>"C:\PointBat\!PointBatSR.cfg" echo Regex=0
>>"C:\PointBat\!PointBatSR.cfg" echo CaseSensitiveSearch=0
>>"C:\PointBat\!PointBatSR.cfg" echo IncludeSubDirs=0
>>"C:\PointBat\!PointBatSR.cfg" echo BackupExt=0
>>"C:\PointBat\!PointBatSR.cfg" echo LogFileName=C:\Pointbat\!PointBatLog.txt.txt
"Srwcons" "C:\PointBat\!PointBatSR.cfg"

>"C:\PointBat\!PointBatSR.cfg" echo #srwin autoconfig file
>>"C:\PointBat\!PointBatSR.cfg" echo #this file was automatically generated by srwin
>>"C:\PointBat\!PointBatSR.cfg" echo #Tuesday, April 13, 1999, 05:25:46 PM
>>"C:\PointBat\!PointBatSR.cfg" echo StartDir=C:\PointBat
>>"C:\PointBat\!PointBatSR.cfg" echo FileType=!PointBatTree.bat
>>"C:\PointBat\!PointBatSR.cfg" echo SearchString=.jpg$
>>"C:\PointBat\!PointBatSR.cfg" echo ReplaceString=.jpg" "C:\PointBat\*.*"
>>"C:\PointBat\!PointBatSR.cfg" echo ProcessROFiles=1
>>"C:\PointBat\!PointBatSR.cfg" echo Regex=1
>>"C:\PointBat\!PointBatSR.cfg" echo CaseSensitiveSearch=0
>>"C:\PointBat\!PointBatSR.cfg" echo IncludeSubDirs=0
>>"C:\PointBat\!PointBatSR.cfg" echo BackupExt=0
>>"C:\PointBat\!PointBatSR.cfg" echo LogFileName=C:\Pointbat\!PointBatLog.txt.txt
"Srwcons" "C:\PointBat\!PointBatSR.cfg"

>"C:\PointBat\!PointBatSR.cfg" echo #srwin autoconfig file
>>"C:\PointBat\!PointBatSR.cfg" echo #this file was automatically generated by srwin
>>"C:\PointBat\!PointBatSR.cfg" echo #Tuesday, April 13, 1999, 05:25:46 PM
>>"C:\PointBat\!PointBatSR.cfg" echo StartDir=C:\PointBat
>>"C:\PointBat\!PointBatSR.cfg" echo FileType=!PointBatTree.bat
>>"C:\PointBat\!PointBatSR.cfg" echo SearchString=.JPG$
>>"C:\PointBat\!PointBatSR.cfg" echo ReplaceString=.JPG" "C:\PointBat\*.*"
>>"C:\PointBat\!PointBatSR.cfg" echo ProcessROFiles=1
>>"C:\PointBat\!PointBatSR.cfg" echo Regex=1
>>"C:\PointBat\!PointBatSR.cfg" echo CaseSensitiveSearch=0
>>"C:\PointBat\!PointBatSR.cfg" echo IncludeSubDirs=0
>>"C:\PointBat\!PointBatSR.cfg" echo BackupExt=0
>>"C:\PointBat\!PointBatSR.cfg" echo LogFileName=C:\Pointbat\!PointBatLog.txt.txt
"Srwcons" "C:\PointBat\!PointBatSR.cfg"

Call "!PointBatTree.bat"

del "!PointBat*.*"

Les fichier *.jpg du répertoire et des sous-répertoire de "C:\Mes Documents" seront copier dans le répertoire "C:\PointBat"

6. Comment créer un fichier batch qui sauvegarde tout les fichiers word, excel et powerpoint ?

La commande pour copier est
xcopy "C:\Fichier\*.xls" "F:\Fichier\*.*"
xcopy "C:\Fichier\*.doc" "F:\Fichier\*.*"
xcopy "C:\Fichier\*.pps" "F:\Fichier\*.*"
Pour plus d'aide sur xcopy tape xcopy /? en ligne de commande

5. Comment lancer plusieurs programmes avec un batch ?

Si tu as Windows NT, 2000 ou XP :

start "a" "C:\Program Files\Internet Explorer\IEXPLORE.EXE"
start "a" "C:\Program Files\Outlook Express\Msimn.exe"

Si tu as Windows 9x :

start "C:\Program Files\Internet Explorer\IEXPLORE.EXE"
start "C:\Program Files\Outlook Express\Msimn.exe"

4. Comment récupérer le résultat de la commande CD dans la variable "MA_VARIABLE"

Si tu as Windows NT, 2000 ou XP :

for /f "tokens=*" %%A in ('cd') do set=%%A

Si tu as Windows 9x :

%comspec% /c for %%v in (1 2) do prompt set var$q$p$_ | find/i "var="> Var.bat
Et tu lances le fichier Var.bat

3. Comment récupérer une valeur dans un fichier .ini avec un batch (var=divers). Puis créer un repertoire au nom de cette valeur (crée "C:\Divers") ?

Prérequis 1 : Pour ce batch tu as besoin de SrWin qui se trouve dans PointBat.zip
Prérequis 2 : Respecte les répertoires

Crée le fichier "C:\PointBat\Do.bat" qui contient :

echo c:>DoMd.bat
echo cd\>>DoMd.bat
find "Matuti="<"exemple.ini">>DoMd.bat
Srwcons /D:"C:\Pointbat" /F:"DoMd.bat" /S:"Matuti=" /R:"md "
Ensuite lance le fichier "c:\pointbat\DoMd.bat" et c'est ok

2. Comment mettre une réponse d'utilisateur en variable ?

Si tu as Windows NT, 2000 ou XP :

Set /P MYNAME=

Si tu as Windows 9x, Windows NT, 2000 ou XP :

Utilise le fichier Input.exe qui se trouve dans le package de la page programmes. La variable sera écrite dans c:\INPUT.BAT.

1. Comment mettre en variable le contenu d'un fichier ?

Si tu as Windows NT, 2000 ou XP :

for /F "tokens=*" %%i in (toto.txt) do set LIST=%%i
echo %LIST%
Evidemment, si le fichier toto.txt contient plusieurs ligne, c'est la denière ligne qui sera mise comme variable
URL : http://www.pointbat.be/pointbat/
Rapport de bogues, remarques, questions, problèmes : pointbat%40pointbat.be
@ Castors Corporation. All rights reserved. Sauvons les forêts, mangeons du castor.