web-dev-qa-db-fra.com

Obtenir le nom de fichier à partir du chemin de chaîne?

Comment puis-je obtenir le nom de fichier de cette chaîne?

"C:\Documents and Settings\Usuario\Escritorio\hello\test.txt"

production:

"test.txt"

J'ai vraiment essayé de trouver celui-ci avant de poster, mais tous les résultats étaient contaminés, ils parlent d'obtenir les noms de fichiers du répertoire actuel (je dois travailler avec des chaînes uniquement)

27
ajax333221

Méthode 1

for %%F in ("C:\Documents and Settings\Usuario\Escritorio\hello\test.txt") do echo %%~nxF

Tapez HELP FOR pour plus d'informations.

Méthode 2

call :sub "C:\Documents and Settings\Usuario\Escritorio\hello\test.txt"
exit /b

:sub
echo %~nx1
exit /b

Tapez HELP CALL pour plus d'informations.

57
dbenham

si votre chemin est un paramètre, utilisez simplement:

% ~ nx1 (1 est pour le premier paramètre et nous supposons que c'est le premier)

echo% ~ nx1 retournerait directement test.txt

9
stormofwar

En supposant que vous ayez besoin des noms de fichiers sous l'arborescence de répertoires "c:\temp" (y compris les sous-répertoires):

FOR /R c:\temp %i in (*.*) do echo %~nxi
6
Marc