- 【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net
749 :デフォルトの名無しさん[sage]:2016/11/16(水) 04:24:03.14 ID:tgJZOdTt - dir /ad /b /s "abc"
サブディレクトリ含め"abc"フォルダのパスを列挙したかったんだけど 子に"abc"がある時と無い時で挙動が全く変わる 子に"abc"が無ければ望み通りの結果になるけど 子に"abc"があるとそこで dir /ad /b /s されて全てのディレクトリが列挙される "*abc"だと"zabc"も出て来るし "*\abc"や"C:\TEST\*\abc"は構文error if exist "abc" で例外処理しないとダメ? 何かサクッと出来る方法があるならお願いします
|
- 【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net
751 :デフォルトの名無しさん[sage]:2016/11/16(水) 06:28:47.52 ID:tgJZOdTt - >>750
それやると何故かカレントディレクトリは C:\TESTなのに (echo %cd% で確認) ドライブ全体から検索してるのか C:\Users や C:\Program Files 配下の abcディレクトリまで表示されるんだけど Win10
|
- 【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net
753 :デフォルトの名無しさん[sage]:2016/11/16(水) 16:58:26.02 ID:tgJZOdTt - >>752
dir /ad /b /s | findstr /r "\\abc$" これで行けそうかな。ありがとう /s スイッチの時フルパスで無ければ強制的にディレクトリ名orファイル名と見做してくれればいいのに 子にあると対象パスの省略形と見なし、無ければ検索するディレクトリ&ファイル名になるとか罠もいいところだわ dir /ad /b /s "\abc" これだとカレントディレクトリが無視されてドライブ全体?からabcフォルダが検索されるんだけど理由が分かる人が居たら教えて下さい
|
- 【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net
756 :デフォルトの名無しさん[sage]:2016/11/16(水) 20:36:19.30 ID:tgJZOdTt - dir /ad /b /s | findstr /r "\\%name%$"
てな場合nameの末尾にスペースが入ると意図した結果にならず dir /ad /b /s | findstr /e "\%name%" で解決出来ました >>753 for /r とif での方が間違いが無さそうですね。ありがとう "\abc" は、まず dir /ad /b /s "C:\abc" とドライブ省略形の対象ディレクトリと見做して 対象が無ければ検索するディレクトリ名&ファイル名として扱われている感じなのかな
|