web-dev-qa-db-fra.com

Rechercher un fichier et renvoyer le chemin complet à l'aide d'un fichier de commandes

Est-il possible de créer un fichier batch qui recherche un nom de fichier, puis retourne son chemin pour que je puisse l'utiliser dans une variable?

13
ABANDOND ACOUNT
for /r C:\folder %%a in (*) do if "%%~nxa"=="file.txt" set p=%%~dpnxa
if defined p (
echo %p%
) else (
echo File not found
)

Si le fichier recherché a été trouvé, il définira la variable %p% au chemin complet du fichier, y compris le nom et l'extension.

Si vous voulez juste le chemin (comme dans le chemin du dossier sans le fichier) alors utilisez set p=%%~dpa au lieu.

Remarque: S'il y a plus d'un fichier avec le même nom, la variable sera définie sur le dernier trouvé. De plus, le script après la ligne de boucle for n'est pas vraiment nécessaire, juste pour vous montrer s'il a trouvé quelque chose :)

Si vous voulez le faire en utilisant la commande dir puis utilisez ceci, les mêmes règles s'appliquent

for /f "tokens=*" %%a in ('dir acad.exe /b /s') do set p=%%a
16
Bali C

Faites ceci: -

for /f "delims=" %%F in ('dir /b /s "C:\File.txt" 2^>nul') do set MyVariable=%%F

En supposant que vous recherchez C lecteur pour File.txt.

5
Deb