Windows 7 - ファイル名でファイルのリストを検索し、フォルダーにコピーする方法

Windows 7 - ファイル名でファイルのリストを検索し、フォルダーにコピーする方法

ファイル名のリストが 200 個あります。異なるサブフォルダーにあるこれらのファイルをファイル名で検索し、別のフォルダーにコピーする必要があります。Windows 7 を使用しています。どうすればいいでしょうか?

ありがとう、ナタリア

答え1

私の提案は、Ninite.com にアクセスして、「Everything」というフリーウェア ツールをダウンロードすることです。これは、シンプルな Windows 検索ツールです。インストール後、ファイルのインデックス作成に 5 分ほどかかります。

検索フィールドに検索語を入力すると、Google と同じようにすぐに結果が表示されます。結果を確認したら、Windows エクスプローラーのように、Everything 検索ウィンドウでファイルを直接操作できます。「すべて選択」してコピーし、Windows エクスプローラーで必要なフォルダーに移動して貼り付けることができます。

Everything は本当に素晴らしいツールです。ファイル名全体を入力する必要はなく、一部を入力するだけで済みます。たとえば、「eag mp3」と入力すると、「eagles - song name.mp3」のようにファイル名に「eag」が含まれるすべての MP3 が返されます。

答え2

はい、どうぞ。まずはリハーサルをしてください。コメントを注意深く読んでください。

fullfilenames.txt ファイルは保存されるので、見つかった各ファイルの記録が残ります。これを複数回実行する必要があり、ファイルを保存したい場合は、ファイルを移動するか、名前を変更してください。

ログファイル「movelog.txt」が作成されます。上記のように、実行後にログファイルを保持する場合は、移動するか名前を変更してください。

# Set your search directory and destination directory
$destdir = "[destination for files]"
$searchdir = "[top dir of search path]"

# Create empty file to contain the full path info for each file
echo $null > fullfilenames.txt
# Create array from your list of filenames
$filenames = Get-Content filenames.txt
# For each file in array of filenames get fullpath and assign var $fullname
foreach ($file in $filenames) {
     $fullname = Get-ChildItem $searchdir | Where-Object {$_.PSIsContainer -eq $False -and ($_.Name) -eq $file} | ForEach-Object {$_.FullName}
     # Add full path of file to fullfilenames.txt
     echo $fullname >> fullfilenames.txt
     # Uncomment next two lines for troubleshooting & dry run
     #echo $file
     #Write-Host $fullname
}

# Create array from new list of files with full path info and then move each file to destination.
# For troubleshooting & dry run, comment out following two lines.
$filenames = Get-Content fullfilenames.txt
echo $null > movelog.txt
foreach ( $file in $filenames ) {
    Move-Item $file $destdir
    # Log success/fail of each move
    echo "$(Get-Date -f o) $? $file" >> movelog.txt
}

注: これは PowerShell スクリプトです。whatever.ps1 として保存し、PowerShell コンソールで実行します。

楽しむ

答え3

「Everything」内のファイル一覧を で区切って検索することができます|

例えば:file1|file2|file3|file4

「Everything」をダウンロードするためのリンク:https://www.voidtools.com/downloads/

関連情報