MSDOS - nom de répertoire courant sans chemin
Fermé
Mich92
-
31 janv. 2009 à 01:55
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 17 janv. 2011 à 04:03
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 17 janv. 2011 à 04:03
A voir également:
- MSDOS - nom de répertoire courant sans chemin
- Téléchargez cette image pour trouver le nom du fichier. il correspond au nom de cette loutre. comment s'appelle-t-elle ? - Forum Windows
- Il est en cours de transport vers votre site de livraison ✓ - Forum Consommation & Internet
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
- Nom de l'adresse ✓ - Forum Réseaux sociaux
- Comment trouver le nom de famille de quelqu'un - Forum Mobile
7 réponses
@cchristian merci !
c vieux mais énorme
j'ai simplifié en :
for %%f in ("%cd%") do set "rep1=%%~nxf"
echo %rep1%
c vieux mais énorme
j'ai simplifié en :
for %%f in ("%cd%") do set "rep1=%%~nxf"
echo %rep1%
test124
Messages postés
12
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
18 octobre 2011
4
27 juil. 2009 à 13:37
27 juil. 2009 à 13:37
après moult test et retest
voici la commande à mettre dans un bat
@echo off
set REP=%CD%
:ici
echo %rep% |FINDSTR /C:\ & if %errorlevel% EQU 0 (goto oui) else (goto non)
:oui
set REP=%REP:*\=%
goto ici
:non
echo %rep%
pause
voili, voilou...
++
voici la commande à mettre dans un bat
@echo off
set REP=%CD%
:ici
echo %rep% |FINDSTR /C:\ & if %errorlevel% EQU 0 (goto oui) else (goto non)
:oui
set REP=%REP:*\=%
goto ici
:non
echo %rep%
pause
voili, voilou...
++
jee pee
Messages postés
40515
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
3 décembre 2024
9 441
1 févr. 2009 à 14:39
1 févr. 2009 à 14:39
Salut
Tu peux utiliser la syntaxe de substitution : set VAR=%VAR:chaine1=chaine2% chaine 1 étant remplacée par chaine 2, chaine 1 pouvant contenir * et chaine 2 pouvant être vide, donc on remplace tout ce qui précède \ par rien.
La fonction n'est effectuée qu'une fois, il faut donc le faire plusieurs fois, j'ai essayé avec des boucles, mais la valeur initiale d'une variable étant persistante à celle avant d'entrer dans la boucle cela ne marche pas. Donc version grobourrin, plusieurs lignes (le max de niveaux de ton arborescence) dans le .bat :-)
set REP=%CD%
set REP=%REP:*\=%
set REP=%REP:*\=%
set REP=%REP:*\=%
...
echo %REP%
cdlt
Tu peux utiliser la syntaxe de substitution : set VAR=%VAR:chaine1=chaine2% chaine 1 étant remplacée par chaine 2, chaine 1 pouvant contenir * et chaine 2 pouvant être vide, donc on remplace tout ce qui précède \ par rien.
La fonction n'est effectuée qu'une fois, il faut donc le faire plusieurs fois, j'ai essayé avec des boucles, mais la valeur initiale d'une variable étant persistante à celle avant d'entrer dans la boucle cela ne marche pas. Donc version grobourrin, plusieurs lignes (le max de niveaux de ton arborescence) dans le .bat :-)
set REP=%CD%
set REP=%REP:*\=%
set REP=%REP:*\=%
set REP=%REP:*\=%
...
echo %REP%
cdlt
Il faudrait faire un test pour voir si la variable %REP% contient le caractère '\' mais la commande findstr ne marche que sur des fichiers.
Si on peut faire ça alors l'algo serait: tant qu'il y a un caractère '\' faire (set REP=%REP:*\=%) sinon echo %REP%.
Si quelqu'un a une idée ou une autre façon de faire.
svp, pas la solution avec un fichier temporaire que l'on crée et que l'on efface ensuite.
merci
++
Si on peut faire ça alors l'algo serait: tant qu'il y a un caractère '\' faire (set REP=%REP:*\=%) sinon echo %REP%.
Si quelqu'un a une idée ou une autre façon de faire.
svp, pas la solution avec un fichier temporaire que l'on crée et que l'on efface ensuite.
merci
++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
29 juil. 2009 à 00:23
29 juil. 2009 à 00:23
Bonjour,
Si j'ai tout bien compris, il semble qu'il y ait plus simple:
Si j'ai tout bien compris, il semble qu'il y ait plus simple:
FOR %%F IN ("%CD%") DO ( SET "variable=%%~nxF" echo variable contient : !variable! )
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
17 janv. 2011 à 04:03
17 janv. 2011 à 04:03
Bonjour,
c vieux mais énorme
Pourtant en vieillissant ça a tendance à diminuer .......
c vieux mais énorme
Pourtant en vieillissant ça a tendance à diminuer .......