Retirer les espaces dans les dates
Résolu
Bonjour à tous et toutes
Je viens vers vous car je cherche depuis deux jours à renommer mes documents.
Les fichiers sont tous nommés de la même manières
yyyy mm dd nomFichier et je voudrais les renommer tous de cette manière:
yyyymmdd_nomFicher
Pour l'instant j'arrive à remplacer tous les espaces par des -
Mais je n'arrive pas à coller les parties de la date.
Voilà le code que j'utilise par exemple pour les photos.
Je vous remercie d'avance pour l'aide que vous m'apporterez.
Bonne journée à tous et toutes
Je viens vers vous car je cherche depuis deux jours à renommer mes documents.
Les fichiers sont tous nommés de la même manières
yyyy mm dd nomFichier et je voudrais les renommer tous de cette manière:
yyyymmdd_nomFicher
Pour l'instant j'arrive à remplacer tous les espaces par des -
Mais je n'arrive pas à coller les parties de la date.
Voilà le code que j'utilise par exemple pour les photos.
@echo off
setlocal enabledelayedexpansion
chcp 1252
for /r "C:\Users\dossier_test" %%a in (*.jpg) do (
set "path=%%~nxa"
set "path=!path: =!"
move /y "%%~a" "%%~dpa!path!"
)
pause
Je vous remercie d'avance pour l'aide que vous m'apporterez.
Bonne journée à tous et toutes
5 réponses
-
Bonjour,
Voilà qui devrait t'aider :cd C:\Users\dossier_test
for /f "tokens=1,2,3,* delims= " %%B in ('dir /b /a-d *.jpg') do (echo %%B%%C%%D_%%E)
pause -
Normalement c'est le navigateur qui bloque mon site, pas le firewall, et ça peut se contourner facilement en cliquant en bas de la fenêtre.
Voilà le code :cd C:\Users\dossier_test
for /f "tokens=*" %%A in ('dir /b *.jpg') do (
for /f "tokens=1,2,3,* delims= " %%B in ("%%A") do (
if not "%%C"=="" (ren "%%A" "%%B%%C%%D_%%E" && echo %%B%%C%%D_%%E)
)
)
pause
exit-
-
@DelNCDe rien, content d'avoir pu être utile.
-
Je viens de voir que je dois maintenant faire la même opération pour les dossiers.
Pour l'instant, j'arrive à remplacer dans le nom des dossiers les espaces par des _@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a In ('dir /b/a-d/s/a " C:\Users\dossier_test" ') Do (
set "$File=%%~nxa"
set "$File=!$File: =-!"
ren "%%a" "!$File!"
)
pause
Mais il faut que pour les dates je fasse la même chose que pour les photos.
Je vais me baser sur ton script.
J'espère y arriver
@+
-
-
Pour les dossiers :
cd C:\Users\dossier_test
for /f "tokens=*" %%A in ('dir /b /ad "*.*"') do (
for /f "tokens=1,2,3,* delims= " %%B in ("%%A") do (
if not "%%C"=="" (ren "%%A" "%%B%%C%%D_%%E" && echo %%B%%C%%D_%%E)
)
)
pause
exit-
-
@DelNCJe n'ai pas vraiment de sites à conseiller mais voilà ceux à qui je me réfère le plus :
- https://www.robvanderwoude.com/shorts.php
- https://www.dostips.com/DtTipsStringManipulation.php
- https://www.batcher.fr/ -
@barnabe0057Merci pour les sites, j'irai les visiter plus tard.
Je vais voir pour améliorer encore un peu mon script.
Il faut aussi renommer les sous dossiers.
Sur un des script que j'ai fait, il fallait ajouter /s /o après dir ...;
Donc çà feraitdir /b /ad /s /o "*.*"
-
@DelNCJ'arrive à renommer les dossiers et sous dossiers
Mais je dois lancer une première fois mon script pour les dossiers et une deuxième fois pour les osus doosiersdir /b/a-d/s/a
-
@DelNCDésolé je ne comprend pas pourquoi tu dois lancer 2 fois ton script.
Donne-moi tout le contenu de ton script, on peut peut-être l'améliorer.
-
-
Je te laisse chercher mais si jamais tu perds patience voilà la solution complète :
https://jirafeau.murky-lane.top/f.php?h=0uXHKKkB&p=1
Bonne journée. -
Merci barnabe0057
Je vais essayer dans un premier temps de finir le script.
Si je n'y arrive pas, j'irai voir sur le site que tu proposes.
@+-
-
@DelNCJ'ai fait plein de tests et je n'y arrive pas.
Je ne peux pas accéder à ton adresse, mon firewall bloque la page.
Peux-tu, s'il te plaît me mettre le code dont j'ai besoin.
Merci
-