Changer de nom et de place [Fermé]

Signaler
Messages postés
100
Date d'inscription
samedi 27 janvier 2018
Statut
Membre
Dernière intervention
20 janvier 2021
-
Messages postés
100
Date d'inscription
samedi 27 janvier 2018
Statut
Membre
Dernière intervention
20 janvier 2021
-
Bonjour,
Je voudrais faire un bat qui change le nom du fichier selon la date d'exécution du bat et aussi de le déplacer dans un autre fichier. Merci de bien vouloir m'aider.

2 réponses

Messages postés
33133
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 juillet 2021
3 635
Bonjour,

Tu poses des questions... mais je n'ai pas l'impression que tu cherches vraiment avant.......

Enfin bon..
un truc du genre :
@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set dt=%%a
set YYYY=%dt:~0,4%
set MM=%dt:~4,2%
set DD=%dt:~6,2%
set HH=%dt:~8,2%
set Min=%dt:~10,2%
set Sec=%dt:~12,2%

set stamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%

copy "c:\repertoire\ton_fichier.son_extension" "c:\autreRepertoire\ton_fichier - %stamp%.son_extension"


j'ai essayer chez moi
ren "c: ..../image.bmp %date% %time%.bmp

mais ça pas fonctionner
Messages postés
13617
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
25 juillet 2021
4 485 > philton5000
C'est parce que %date% et %time% contiennent des caractères spéciaux, et les noms de fichiers ne peuvent pas en contenir.

Si tu veux les utiliser, il faut d'abord les découper, comme Jordane te l'a montré.
Messages postés
100
Date d'inscription
samedi 27 janvier 2018
Statut
Membre
Dernière intervention
20 janvier 2021

ha ok merci
Messages postés
13617
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
25 juillet 2021
4 485
Bonjour,

Je suis d'accord avec Jordane, tu ne te casses pas beaucoup la tête.

Je suppose que ta demande a un rapport avec les photos prises par webcam.
Voilà donc un script qui prend une rafale de (5) photos puis les déplace/renomme vers un dossier de destination :

@echo off
Mode con cols=50 lines=25
Title Webcam
setlocal enableextensions enabledelayedexpansion
color 0A



:: ---------------------------
:: debut du programme
:: ---------------------------

set jour=!date:~6,4!!date:~3,2!!date:~0,2!
set heure=!time:~0,2!h!time:~3,2!m!time:~6,2!s

set source=le chemin vers le dossier qui contient CommandCam.exe
set destination=%USERPROFILE%\Desktop\backup

if not exist "%source%\CommandCam.exe" (exit /b 1)
cd /d %source% || exit /b 1
del /f /q "*.bmp" >nul 2>&1

for /L %%A in (1,1,5) do (
set num=000%%A
set num=!num:~-4!
echo. & echo photo %%A : en cours de prise ...
CommandCam /filename face!num!.bmp /delay 3000 /quiet
cls
)

call :deplacement "%destination%" "!jour!_!heure!"

exit /b 0

:: ---------------------------
:: fin du programme
:: ---------------------------



:: ---------------------------
:: debut de la fonction
:: ---------------------------

:deplacement

set index=0
if not exist "%~1\%~2" (mkdir "%~1\%~2")

for /f "delims=" %%A in ('2^>nul dir /b /a-d ^| find ".bmp"') do (

set /a index+=1
set ref=000!index!
set ref=!ref:~-4!

echo. & echo ==^>^> %~2#!ref!%%~xA
>nul move "%%~fA" "%~1\%~2\%~2#!ref!%%~xA"
)

goto :eof

:: ---------------------------
:: fin de la fonction
:: ---------------------------


Tu as juste besoin de modifier les parties soulignées.



“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
Messages postés
13617
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
25 juillet 2021
4 485 > philton5000
Si tu comprends le reste c'est déjà bien.

Je vais essayer d'expliquer :

%1 et %2 correspondent aux paramètres que l'on envoie à la fonction, dans ce cas précis :

%1 est égal à la variable "%destination%"
%2 est égal à la variable "!jour!_!heure!"

L'utilité d'une fonction c'est d'éviter plusieurs lignes de code qui se répètent, un peu comme une boucle FOR. A chaque fois qu'on a besoin de ces lignes de code on appelle (CALL) la fonction.

et aussi pourquoi je n'ai pas reçu les réponce par mail (donc j'en ais écris un autre pareil)
Messages postés
13617
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
25 juillet 2021
4 485 > philton5000
Pour recevoir les réponses par mail, il faut cocher la case qui va bien.

genre (call)

goto a
:a
Messages postés
13617
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
25 juillet 2021
4 485 > philton5000
Voilà un exemple de fonction simple à comprendre :

@echo off
echo Bonjour,
echo Nous sommes le %DATE%

:boucle
call :horloge
pause
goto :boucle

:horloge
echo.
echo il est %TIME%
goto :eof

L'instruction GOTO :EOF sert à indiquer la fin de la fonction. Le programme reprend son cours là où il s'était arrêté, après le CALL.