Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[R] Découpage chemin de fichier
Auteur Message
Répondre en citant
Message [R] Découpage chemin de fichier 
Bonjour,
Dans un batch, à partir du chemin absolu d'un fichier, je voudrais définir deux variables contenant:
- le nom du fichier
- le dossier parent du fichier

j'ai essayé ce code:
Code:
@echo off
rem Extraire le nom du dossier parent du fichier dont le chemin complet est donné

if "%1"=="" goto :eof

chcp 1252
set chemin="%1"
echo chemin: %chemin%

FOR /F "tokens=1-6 delims=\" %%A IN (%chemin%) DO call :extract %%E %%F
goto :eof

:extract
set dossier=%1
set fichier=%2
echo dossier parent = %dossier%
echo fichier = %fichier%
pause




Un glissé/déposé du fichier traité sur le fichier bat est effectué depuis l'explorateur et permet d'obtenir le chemin complet.
Ca fonctionne correctement si je connais d'avance le nombre de niveaux (cf tokens=1-6).
Mais je souhaiterais généraliser.

J'ai essayé tokens=1* mais je ne vois comment affecter les bons éléments aux variables dossier et fichier?

Merci d'avance!



Dernière édition par H44 le Mer 2 Mai 2018 - 20:01; édité 1 fois
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [R] Découpage chemin de fichier 
Salut Mr. Green

Simplement comme ça :

Code:
@echo off

if "%1"=="" goto :eof

echo;Nom du fichier             : %~nx1
echo;Dossier Parent du Fichier  : %~dp1


pause>nul

pour + d'info c'est ici : https://ss64.com/nt/syntax-args.html



p.s : tu as posté ton message au mauvais endroit, il faut le posté ici normalement : http://batch.xoo.it/f11-Aide-Programation.htm
p.s 2 : si ton problème est résolu rajoute [R] devant le titre du topic, pour faire ça tu édites simplement ton message est là tu peux modifier le titre Okay




______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message [R] Découpage chemin de fichier 
@Flammrock: merci, impec avec le chemin passé en paramètre.

Petite question: quelle serait la méthode si le découpage s'applique à une variable chemin définie dans le batch au lieu du paramètre?



Répondre en citant
Message Re: [R] Découpage chemin de fichier 
H44 a écrit:
@Flammrock: merci, impec avec le chemin passé en paramètre.

Petite question: quelle serait la méthode si le découpage s'applique à une variable chemin définie dans le batch au lieu du paramètre?


Comme ça :

Code:
@echo off

set ma_variable=C:\path\vers\le\fichier\exemple.txt


call :extractPath %ma_variable% nomDeLaVariableFileName nomDeLaVariableBaseDirectory


echo;Nom du fichier             : %nomDeLaVariableFileName%
echo;Dossier Parent du Fichier  : %nomDeLaVariableBaseDirectory%



pause>nul&exit
:extractPath <path> <output:fileName> <output:baseDirectory>
  set %~2=%~nx1
  set %~3=%~dp1
goto :eof





______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message Re: [R] Découpage chemin de fichier 
Flammrock a écrit:
H44 a écrit:
@Flammrock: merci, impec avec le chemin passé en paramètre.

Petite question: quelle serait la méthode si le découpage s'applique à une variable chemin définie dans le batch au lieu du paramètre?


Comme ça :

Code:
@echo off

set ma_variable=C:\path\vers\le\fichier\exemple.txt


call :extractPath %ma_variable% nomDeLaVariableFileName nomDeLaVariableBaseDirectory


echo;Nom du fichier             : %nomDeLaVariableFileName%
echo;Dossier Parent du Fichier  : %nomDeLaVariableBaseDirectory%



pause>nul&exit
:extractPath <path> <output:fileName> <output:baseDirectory>
  set %~2=%~nx1
  set %~3=%~dp1
goto :eof


@Fammrock: super! comme ça j'en sais maintenant un peu plus sur ce sujet...
Merci et bonne journée à toi

Hervé Okay



Message [R] Découpage chemin de fichier 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch