2012-05-10 7 views
0

たとえば、C:\ windows \ system32 \ whatever.dllファイルがc:\ windowsにあるかどうかを確認する必要があります。 if not exists ...のような方法で可能ですが、ここではif %file% lies in %directory%指定したファイルがWindowsのコマンドラインで指定されたディレクトリの下にあるかどうかを確認する方法xp?

編集:私が探しているファイルのパスを知っています。この問題は、ファイルのパスの先頭にディレクトリへのパスが含まれているかどうかを調べることで、文字列を比較することになります。

答えて

2

あなたは "C:\ myfolderなど\ yourfolder \ myfile.txtの" のような完全なファイル・パス名を作成し、このように

if not exists %directory%\%file% 

ような何かを行うことができますし、それを確認するには、存在

です

:: starting folder 
set RootPath=c:\myfolder\yourfolder\ 

::check all subfolder 
for /R "%RootPath%" %%d IN (.) DO ( 
    echo %%d 

    :: check all file in each subfolder 
    for %%f IN ("%%~d\*.*") DO (

     :: check if your file exist 
     IF "%%~nxf"=="filenameImLookingFor.txt" (
       echo Found file here "%%~f" 
     ) 
    ) 
) 
これは作品が(それはテストされていない)必要があります

更新
  • %%〜 NXFあなたがあなた自身を追加できるように、「〜」、また、拡張変数が 接頭/接尾doublequteを含まないことを確認してパス
  • せず、拡張子を持つfilnameに拡張されます た予想外のダブルダブルクォートなしで(つまりは混乱物事 まで明らかにされます)ここで

は(コマンド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 
%~$PATH:I - searches the directories listed in the PATH 
       environment variable and expands %I to the 
       fully qualified name of the first one found. 
       If the environment variable name is not 
       defined or the file is not found by the 
       search, then this modifier expands to the 
       empty string 

修飾子は、化合物の結果を得るために組み合わせることができます:はい

%~dpI  - expands %I to a drive letter and path only 
%~nxI  - expands %I to a file name and extension only 
%~fsI  - expands %I to a full path name with short names only 
%~dp$PATH:I - searches the directories listed in the PATH 
       environment variable for %I and expands to the 
       drive letter and path of the first one found. 
%~ftzaI  - expands %I to a DIR like output line 
+0

が、ファイルが道ダウンツリー、サブディレクトリに可能性があり。 – rsk82

+0

@ rs82 - あなたはどのディレクトリにあるべきかを知っていますか、それとも指定されたディレクトリのどこにいても知りたいですか? – jeb

+0

どこでも。 – rsk82

関連する問題