2016-08-02 15 views
0

すべてのドライブでファイル名を検索しようとしています。バッチとcmd.exeの変数とワイルドカード

C:\>dir /s C:\*blabla* 
Volume in drive C has no label. 
Volume Serial Number is 2AB1-3FBD 

    Directory of C:\Users\Administrator\Desktop 

02/08/2016 11:21     0 blabla.txt 
      1 File(s)    0 bytes 

Total Files Listed: 
      1 File(s)    0 bytes 
      0 Dir(s) 28?369?825?792 bytes free 

しかし、それが失敗したループでそれを使用した場合:一人でdirコマンドを使用すると、すべてがうまくいく

FOR /F "skip=1 delims=" %x in ('wmic logicaldisk get caption') do dir /s %x*blabla* 

*blabla* Administrator\Desktop>dir /s A:  
The device is not ready. 

*blabla* Administrator\Desktop>dir /s C:  
Volume in drive C has no label. 

して誰かが私を助けることができますか?

+0

:私が探していた答えをある

。 'dir/s C:'が呼び出されたときに表示される唯一の行は「ドライブCのボリュームにラベルがありません」とか、それ以上あることを正しく読んでいますか? – SomethingDark

+0

try _FOR/F "skip = 1 delims ="%x in( 'wmic logicaldiskキャプションを取得')do dir/s%x \\ * blabla * _。 _delims_には追加のトークンとしてスペースがあります。 _logicaldiskのバックスラッシュを_logicaldiskに追加するcaption_はバックスラッシュではなく、ドライブ名とコロンのみを返します – elzooilogico

+0

これはより良い 'FOR/F" skip = 1 delims = "%x in( 'wmic logicaldisk %sを入力してください。%s%x \ * blabla * ' – elzooilogico

答えて

0

ご協力いただきありがとうございます。また、他のスクリプトにも素晴らしいアイデアをいただきました。私はこれを複製することができないよう

C:\>FOR /F "skip=1 delims= " %x in ('wmic logicaldisk get caption') do @where /R %x *blabla* 2>NULL 
C:\Users\Administrator\Desktop\blabla.txt 
+0

noteあなたのファイルがどこか他の場所にある場合、 'dir'の解決策の1つが必要です(私は'/b'スイッチを追加します) – Stephan

関連する問題