回答:
あなたの文字通りの質問への答えは「いいえ」です-しかし、あなたの本当の質問が:
cmdの下で名前に数字を含むファイルのみを何らかの方法で選択できますか?
それがntベースのものであれば(より具体的にはW2k plus)、はいできます。トリックはfindstr、単純な正規表現をサポートするを使用して、結果を除外することです。例の場合と
dir /b |findstr /r "\.[0-9]"同様の結果が得られますdir。これは、file.1st.second(dirが返すように)戻ることも意味します。
ここでの小さな問題は、ファイル名のみがリストされることですが、それでも解決でき
for /f %F in ('dir /b ^|findstr /r "\.[0-9]"') do @echo %~ftzaFます。リストを適切にフォーマットされたdirスタイルで印刷します。現在のディレクトリで実行する必要があることに注意してください!
OR(私が推薦する)
あなたが持っている場合はpowershell利用可能(またはあなたがそれをインストールして喜んでいる)、それを起動とexec:
gi .\* |? {$_.name -match "\.[0-9]"}
OPコメントに従って編集:
これは
、以下を使用してファイルを列挙しますfor /r:
最も単純ですがfindstr、すべての行で実行されるため、非常に低速です(いくつかのファイル以外はほとんど使用できません)。
for /r "c:\temp" %F in (*) do @echo %~nxF | findstr /r "\.[0-9]" && echo %F
より複雑ですが、高速です(特別に準備された文字列を使用して、次の単一インスタンスへのパイプを許可しますfindstr:
for /f "tokens=2 delims=* eol=*" %F in ('^(for /r "directory_root" %F in ^(*^) do @echo %~nxF*%~dpnxF^) ^|findstr /r "\.[0-9].*\*"') do @echo %F
または(機能的には同じですが、読みやすいです:>)
(for /r "directory_root" %F in (*) do @echo %~nxF*%~dpnxF) | for /f "tokens=2 delims=* eol=*" %F in ('findstr /r "\.[0-9].*\*"') do @echo %F
コマンドラインから直接実行されるすべての例
for /r。
?でなくワイルドカード文字として使用されているため*です。おそらく、代わりにWindowsコマンドプロンプト(cmd.exe)を意味しますか?