2016-12-27 21 views
1

です。ユーザがコンピュータでファイルを検索できるようにするプログラムを作成しています。ファイルexistsは、ショートカットを作成します。 startそのファイルを新しいディレクトリに作成します。すべての拡張機能を使用できます。問題は、start(.jarのような)特定の拡張子にするために、ファイルのpathが必要です。CMD:ファイルのパスを変数に格納します。ファイル名は

私がこれまで見てきた例はどれも、通常は既に分割されたパスが必要なため、これを手助けするのに成功していません。

Ex。

(dir %Filename%.%extension% /b /s /a:-D) 

どのように私は変数に、このことにより、与えられたのみpathを保存することができるだろうか?

何か助けていただければ幸いです。

答えて

2

forループを使用してdirコマンドの出力を処理する場合、バッチはパスとファイル名を自動的に認識します。そこから、よく知られている%~dp構文を使用してパスを取得するだけです。 dドライブを取得し、pパスを取得

for /f "delims=" %%A in ('dir /b /s /a:-d') do echo %~dpA 

。 (for /?から)

その他のオプション:

%~I   - expands %I removing any surrounding quotes (") 
%~fI  - expands %I to a fully qualified path name 
%~dI  - expands %I to a drive letter only 
%~pI  - expands %I to a path only 
%~nI  - expands %I to a file name only 
%~xI  - expands %I to a file extension only 
%~sI  - expanded path contains short names only 
%~aI  - expands %I to file attributes of file 
%~tI  - expands %I to date/time of file 
%~zI  - expands %I to size of file 
関連する問題