Winで絶対パスが記載された一覧ファイルをバッチでコピーする

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

Windows環境で、コピーしたいファイル名の一覧があって、それらを特定のフォルダに一括コピーしたい場合のバッチ(BAT)ファイルの作り方です。

準備

  1. コピー先のフォルダ作成 (例:”CopiedFiles”)
  2. コピーしたいファイルの一覧が書かれたテキスト (例:”ListToCopy.txt”)
  3. コピーを実行するバッチ・ファイル (例:”DoCopy.bat”)

ファイル一覧の中身の例 (ListToCopy.txt)

C:\Windows\system32\kernel32.dll
C:\Windows\system32\kernelbase.dll
C:\Windows\system32\mscoree.dll
C:\Windows\SYSTEM32\ntdll.dll
C:\Windows\system32\ACLUI.dll
C:\Windows\system32\ACTIVEDS.dll
C:\Windows\system32\adsldpc.dll
C:\Windows\system32\advapi32.dll
C:\Windows\system32\ADVPACK.dll
(以下続く)

バッチ・ファイルの中身 (DoCopy.bat)

for /F %%i in ( .\ListToCopy.txt ) do copy %%i .\CopiedFiles

上記をメモ帳に書いて保存後、拡張子を”.txt”→”.bat”に変更すればバッチファイルになります。

上記は、バッチファイル、コピー先ディレクトリ(フォルダ)、コピー元の一覧ファイルが同じ階層にある場合です。”C:\CopiedFiles”といった絶対パスでの記載も可能です。

コピーの実行 (バッチの実行)

バッチ・ファイルを「バッチコーイ」と言いながらダブルクリックするとコマンド・プロンプトが立ち上がり、コピーが始まります。

記載したファイルが、実際にのパスに存在しない場合は当然コピーされませんが、コピー処理は無視してそのまま続行されます。

主な用途:MacやLinuxでWineを使う際にWinアプリが必要なDLLを調べる

最近、iMac上のBOOTCAMPでWindows7を使っているのですが、Mac OSX Lionも触るようになりました。Winアプリが必要な時は、基本は”VMWare Fusion4″を起動させて使っていますが、”OSX”はUNIXなので、有名な”Wine”を使ってWindowsアプリを動かしたい場合に必要DLLが足りなくて動かないというケースがたまにあります。

そういった場合、”Dependency Walker”という、アプリが起動(動作)するのに必要なDLLやEXEを解析するソフトがあるのですが、解析結果をテキスト・ファイルにコピペして保存したものを、上記方法で必要なDLLをピックアップして、Wineの該当アプリと同じ階層に突っ込むことで動いたりします。

まぁ、Windows環境を持っていないとできないですし、本来はバックアップをするための技術として覚えたのですが、応用技と言ったところでしょうか。

関連記事

スポンサーリンク
レクタングル(大)広告

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク
レクタングル(大)広告