2017-10-16 2 views
-1

Dans un répertoire de base contenant de nombreux sous-dossiers et fichiers, je dois rechercher un fichier PDF. Si le fichier requis est trouvé, je dois l'ouvrir à l'aide de l'invite de commande. C'est ce que j'ai essayé de faire, le code que j'ai utilisé pour extraire l'adresse du fichier est le suivant, le code est incomplet, s'il vous plaît, aidez-moi à le compléter. (J'ai fait cela en tant que fichier .bat et l'exécuter.) comment ouvrir le fichier à l'adresse qui est en cours d'enregistrement dans le fichier texte?Rechercher et ouvrir des fichiers dans l'invite de commande

@echo off 
setlocal EnableDelayedExpansion 
set /p bn=Enter the Bridge NO: 
Z: 
cd "Z:\OHE_Design\DFCC\EMP-4 OHE\Submissions\References\Received\CTP-1 & 2\05-Bridge Mast files\CTP 1 & 2 DETAILS\OHE approval letters" 
dir /s *%bn%.pdf > "C:\Users\suneelp\Desktop\temp.txt" 
for /f "usebackq delims=" %%a in (`more +3 C:\Users\suneelp\Desktop\temp.txt`) DO (  
    echo %%a>C:\Users\suneelp\Desktop\temp.txt 
    goto :leave 
) 
:leave 
pause 
+1

Alors, quel est le problème? – gvee

+0

comment convertir l'adresse qui est dans le bloc-notes, à une valeur de chaîne d'une variable? –

Répondre

0

Il suffit de récupérer le chemin complet avec le nom du fichier, et « start » il - Windows utilisera le gestionnaire par défaut pour cette extension:

@echo off 
set spath="Z:\OHE_Design\DFCC\EMP-4 OHE\Submissions\References\Received\CTP-1 & 2\05-Bridge Mast files\CTP 1 & 2 DETAILS\OHE approval letters" 
set /p bn=Enter the Bridge NO: 
for /f "delims=" %%f in ('dir /s /b %spath%\*%bn%.pdf') do @cmd /c "%%f" 

Donc, pas cd sur le chemin recherché/volume de nécessaire, ni le delayedexpansion ou pause. La commande ne se termine que si le document est fermé.

+0

Ce programme ne cherche pas le fichier, il assume directement le chemin que nous avons mentionné. –

+0

Eh bien, c'est le cas. Le (s) fichier (s) sont recherchés via 'dir/s' dans et en dessous du chemin donné. Notez le caractère générique. – user1016274