2017-10-16 6 views
-1

多くのサブフォルダとファイルを含む基本ディレクトリでは、PDFファイルを検索する必要があり、必要なファイルが見つかった場合はコマンドプロンプトを使用して開く必要があります。これは私がやろうとしてきたことですが、ファイルのアドレスを抽出するために使用したコードは次のとおりです。コードは不完全です。完了するのを手伝ってください。 (これを.batファイルとして作成して実行します) テキストファイルに保存されているアドレスでファイルを開く方法は?コマンドプロンプトでファイルを検索して開く

@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

だから何が問題なのですか? – gvee

+0

メモ帳にあるアドレスを変数の文字列値に変換する方法は? –

答えて

0

だけで、ファイル名と一緒に全体のパスを取得し、それを「スタート」 - Windowsは、この拡張機能のデフォルトのハンドラを使用しません:

@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" 

だから、何cdを検索パス/ボリュームにdelayedexpansionまたはpauseである必要はありません。このコマンドは、ドキュメントが閉じられている場合にのみ終了します。

+0

このプログラムはファイルを検索せず、直接言及したパスを引き継ぎます。 –

+0

それはそうです。指定されたパス内とその下の 'dir/s 'を介してファイルが検索されます。ワイルドカードに注意してください。 – user1016274

関連する問題