Changer de nom et de place

Fermé
philton5000 Messages postés 100 Date d'inscription samedi 27 janvier 2018 Statut Membre Dernière intervention 20 janvier 2021 - 17 mars 2018 à 20:11
philton5000 Messages postés 100 Date d'inscription samedi 27 janvier 2018 Statut Membre Dernière intervention 20 janvier 2021 - 21 mars 2018 à 21:10
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

jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
17 mars 2018 à 20:34
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"

0
philton5000
19 mars 2018 à 20:52
j'ai essayer chez moi
ren "c: ..../image.bmp %date% %time%.bmp

mais ça pas fonctionner
0
barnabe0057 Messages postés 14439 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 14 avril 2024 4 905 > philton5000
Modifié le 19 mars 2018 à 21:21
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é.
0
philton5000 Messages postés 100 Date d'inscription samedi 27 janvier 2018 Statut Membre Dernière intervention 20 janvier 2021
21 mars 2018 à 21:10
ha ok merci
0
barnabe0057 Messages postés 14439 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 14 avril 2024 4 905
Modifié le 18 mars 2018 à 00:56
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.


0
philton5000
19 mars 2018 à 20:30
nice merci
et oui ça a rapport avec la prise de photo
0
merci merci merci
Je ne comprend rien dans les % # / " !
0
philton5000
19 mars 2018 à 20:40
et aussi pourquoi je n'ai pas reçu les réponce par mail (donc j'en ais écris un autre pareil)
0
barnabe0057 Messages postés 14439 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 14 avril 2024 4 905 > philton5000
Modifié le 19 mars 2018 à 20:44
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.
0
barnabe0057 Messages postés 14439 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 14 avril 2024 4 905 > philton5000
19 mars 2018 à 20:53
Pour recevoir les réponses par mail, il faut cocher la case qui va bien.
0