基本的な Windows XP を使用してファイルのリストをオフライン ユーザーに転送するにはどうすればよいですか?

基本的な Windows XP を使用してファイルのリストをオフライン ユーザーに転送するにはどうすればよいですか?

たくさんのファイル(数百 GB)があり、そのうちのいくつかを友人に渡したいと思っています。しかし、友人は必要なファイルを選択する必要があり、一度にすべてのファイルを渡すことはできません(そのような大きな USB フラッシュや USB HDD はありません)。すべてのファイルのリストを作成し、小さな USB フラッシュで友人に転送すれば、友人は必要なフォルダーと不要なフォルダーを指定できます。

標準の Windows XP インストールまたは WindowsExplorer のような小さなプログラムで簡単に表示できるファイルのリストを作成するにはどうすればよいでしょうか。 のls -lRようなリストを作成して txt に保存することはできますが、友人がこのリストを表示するのは困難です。diskdirTotal Commander には、保存されているファイルの名前とパスのみを含むテキスト ファイルにフォルダーをアーカイブできるプラグインがあります。 このプラグインを使用すると、Total Commander は zip または arj 内のようにこのアーカイブ内を移動できます。 しかし、Total Commander は友人にとって使いにくいと思うので、Windows Explorer のようなソリューションについて質問しています (たとえば、winzip を使用すると Explorer は zip アーカイブ内を移動できますが、私はそのようなものを望んでいます)。

つまり、任意のプログラムをインストールでき、また、ビューアー プログラムをファイル リストとともに USB フラッシュに保存することもできます。

答え1

あなたが得ることができると仮定するとパワーシェルv2ローカル マシンにインストールされている場合 (または既にインストールされている場合)、次のスクリプトで目的の動作を実行できます (PowerShell v1 でも動作するかもしれませんが、確実ではありません)。

$dupedir = "D:\Backup"
$newdir = "C:\Temp"
$dupelist = Get-ChildItem -Force -Recurse -ErrorAction SilentlyContinue $dupedir

foreach ($item in $dupelist) 
{
    If ($item -is [Io.DirectoryInfo])
    {
        $itemtype = "directory"
    }
    If ($item -is [Io.FileInfo])
    {
        $itemtype = "file"
    }

    New-Item -Force -type $itemtype -Path $item.FullName.Replace("$dupedir","$newdir")
}

パスを、$dupedir友人に知らせたいパスのルートに変更します。このスクリプトの実行が完了すると、友人に確認させたいファイル構造 (実際のファイルではありません) の正確なミラーが C:\Temp (または、変数のディレクトリも変更した場合は別の場所) に作成されます$newdir。変数を変数$newdirのディレクトリ内に配置しないでください。$dupedirそうしないと、無限再帰が発生し、最終的にすべてのディスク領域が消費される可能性があります (「ファイル」が 0 バイトのファイルであっても)。

PowerShell の優れた点は、コマンドラインでスクリプトを「記述」できることです (bash と同様)。コードをテキスト エディターにコピーし、パスを変更してから、全体をコピーして PowerShell ウィンドウに貼り付けると、魔法が働きます。

bash をお持ちだとおっしゃっていましたが、これを Unix/Linux マシンで実行したいのであれば、bash で実行できたかもしれません。残念ながら、Windows ファイルシステムをいじる必要のある bash スクリプトは、私にはあまり得意ではありませんでした。

答え2

コマンドを使用するだけですdir /s > C:\temp\filename.txt。これにより、ディレクトリ構造が C:\temp\filename.txt ファイルに出力されます。移動したい場所から開始します。

次に、TXT ファイルを彼に送信します。

答え3

zip ファイルを使用しないのはなぜですか? すべてのファイルを 1 つのウィンドウで表示し、それらを別のフォルダーに抽出することができます。

答え4

しばらくこの質問について考えていましたが、2 つの解決策に出会いました。最適な解決策は次のとおりです。

使用cdcatこれは、DVD やハード ドライブなどのファイル システム ツリーをインデックス化し (大きなファイルをインデックスに格納せずに)、複数のファイルを 1 つのカタログに格納できるプログラムです。このプログラムは、音楽 (ID3 タグ) やビデオ (解像度、継続時間など) のメタ情報もカタログに含めるため、このようなタスクに最適なプログラムです。もう 1 つの優れた機能は、cdcat がインデックス化されたディレクトリまたはファイル (ノード) のサイズを計算できることです。

すべてのメタ情報 (および nfo などの小さなファイル (設定した場合)) が圧縮された XML ファイルに保存されます。 自分 (A さん) から誰か (B さん) にファイルをコピーし、その人 (B さん) が実際に必要なものを選択できるようにするには、次のようにします。

  1. A さんは興味のあるファイルすべてにインデックスを付け (nfo、ID3 タグなど何が含まれるかを確認するために、これを行う前に cdcat の設定を確認する必要があります)、それらを 1 つのカタログとして保存します。
  2. A さんがカタログを B さんにコピーします。
  3. ここで、B さんは何らかの方法でファイルを選択する必要があります。私は、各ノード (ディレクトリまたはファイル) に追加できるカテゴリ フィールドを使用するというアイデアを思いつきました。このフィールドは、たとえば優先順位として使用できます。再帰的にカテゴリが添付されていないノードや特別なカテゴリを持つノードは、後でコピーされません。カテゴリは XML ファイルにも保存され、必要なファイルをすべてコピーするための .bat スクリプトや Bash スクリプトなどをエクスポートするためのパーサーを作成することはそれほど難しくありません。
  4. B さんは OS 固有のコピー スクリプトを A さんに渡します (または、もちろん B さんは変更したカタログを返して、A さんにコピー スクリプトを生成させます)。
  5. A さんはコピー スクリプトを実行し、B さんにデータ メディアを渡します。(cdcat はデータがカタログにインデックスされたマウント ポイントへのパスを保存しないため、少し不便な点があります。)
  6. B さんはファイルを自分のストレージにコピーし、データ メディアを A さんに返します。

このソリューションはまだ完璧ではありませんが、私が思いついた中では最善のものです。まだ使用していませんが、将来使用する予定です。この間、Linux および Windows 用のコピー スクリプトを生成する拡張機能またはスクリプトを作成する必要があります。私の計画は、これを cdcat プログラムに直接組み込むことです。

2番目でより洗練された、指導に値する解決策は、git-annexおそらくこれもこれに使用できますが、この 2 番目のアプローチでは、両方の人物 (A と B) が git-annex を持ち、その使用方法を知っている必要があるため、cdcat を使用したソリューションほど慎重に検討しませんでした。

今後も最新情報をお知らせします。

関連情報