同じ3文字で始まるすべてのファイルを選択できるWindowsシェルコマンドを見つけようとしています。たとえば、ディレクトリに次のものがあったとします。
000hello 000world 111foo 121bar
このコマンドは、最初の 2 つのファイルを取得します。これを行う方法はありますか?
bashワイルドカードを使用する
$ echo 000*
Windows とタグ付けされているため、どのようなソリューションが必要かは明確ではありませんが、Ruby を使用できる可能性がある場合は、これでうまくいく可能性があります。
# create a hash of arrays where the hash value is the first three letters of the
# file name and the value is an array of those entries.
h = Hash.new{|h,k| h[k] = []}
Dir.foreach(".") { |f| h[f[0..2]] << f }
# then print/use the ones that have multiple entries
h.each_key { |k| puts h[k] if h[k].length > 1 }
Windows コマンドラインですよね?
dir 000*
*
ファイル名の任意の文字に一致するワイルドカード文字です
?
ファイル名の単一文字に一致するワイルドカード文字です
あなたの新しい情報に基づいて:
for /f %i in ('dir /b 000*') do (
echo %i is the name of the file we found
type %i
)
バッチ ファイルを使用している場合は、%%i
.
これは、現在の作業ディレクトリにとどまることを前提としています。ディレクトリ ツリーをサブディレクトリまでたどりたい場合は、 の使用を検討してfor /r
ください。