• ベストアンサー

ファイルのサイズを0にする or サイズ0のファイルを作成したい。

フォルダおよびファイルの構造をサイズを0にしてコピーしてくれるツールを探しています。 例えば、 フォルダ0 ├ フォルダ1 │ ├ a.txt (1KB) │ ├ b.jpg (50KB) │ └ c.exe (200KB) │ └ フォルダ2   ├ d.lzh (3MB)   ├ e.rar (20MB)   └ f.zip (500MB) という構造があったとします。 この上記の構造を読み取り、別の場所に対して、 フォルダ3 ├ フォルダ4 │ ├ a.txt (0byte) │ ├ b.jpg (0byte) │ └ c.exe (0byte) │ └ フォルダ5   ├ d.lzh (0byte)   ├ e.rar (0byte)   └ f.zip (0byte) この様に出力するようなソフトウェアを探しています。 または別の場所に出力せずとも直接ファイルサイズを0にするような物でも構いません。 バックアップ用途で容量を食わずファイル、フォルダの構造だけを 見る事が出来る様にする為、どうしても必要です。 接続されていないメディアのファイル、フォルダを検索するツールもありますが 汎用性の低さから実用には至れませんでした。 心当たりのある方、どの様なご意見でも構いませんので ご回答いただけると幸いです、よろしくお願い致します。

noname#87418
noname#87418

質問者が選んだベストアンサー

  • ベストアンサー
  • Werner
  • ベストアンサー率53% (395/735)
回答No.7

> よろしければ具体的な記述の仕方を教えていただけると助かります。 copy /Y nul C:\tesuto\1\a.txt copy /Y nul C:\tesuto\1\b.txt copy /Y nul C:\tesuto\1\c.txt copy /Y nul C:\tesuto\2\d.txt copy /Y nul C:\tesuto\2\e.txt copy /Y nul C:\tesuto\2\f.txt > 1. dirコマンドで階層内容を表示、内容をファイルに出力。 > 2. 出力されたファイル内容を置換。 > 3. copyコマンドでファイルを読み込みファイルサイズ0でコピー。 > という3行程で求める動作が得られるわけですよね? > これで上手く行くのであればまあ良いのですけどもう少し簡略化する方法は無いのでしょうか。 では指定ディレクトリ以下のファイルを全てからにするバッチファイルを教えます。 以下の1行からなるバッチファイルを作成し、 コマンドプロンプト、またはダブルクリックで実行してください。 for /R "C:\tesuto" %%F in (*) do copy /Y nul %%F "C:\tesuto"の部分はもちろん必要に応じて書き換えます。 指定したディレクトリ以下のファイルを全て実質的に削除してしまう 危険な記述なので実行は慎重に。 ちなみに (*) のところを (*.txt) とかすると テキストファイルだけを対象にできたりします。 また for /R "C:\tesuto" %%F in (*) do echo copy /Y nul %%F と echo を入れておくとcopyコマンドが実行されず表示されるだけになるので、 期待通りのコマンドが実行されているかテストできます。

noname#87418
質問者

お礼

ご回答ありがとうございます。 何度もすみません、ご迷惑おかけします。 copy /Y nul C:\tesuto\1\a.txt copy /Y nul C:\tesuto\1\b.txt copy /Y nul C:\tesuto\1\c.txt copy /Y nul C:\tesuto\2\d.txt copy /Y nul C:\tesuto\2\e.txt copy /Y nul C:\tesuto\2\f.txt 早速ですがこちらの記述を試してみましたがコピーされませんでした。 私がした具体的な操作としては、 テキストエディタで編集した上記の内容のバッチファイルを C:\tesuto2 で実行しました。 コピーされる様子がないのでためしに nul を消して実行してみましたが、そうすると、 C └ tesuto2   ├ a.txt   ├ b.txt   ├ c.txt   ├ d.txt   ├ e.txt   └ f.txt この様にファイルが出力され、ファイルサイズも0にならずフォルダも作成されず、 コピー元と同様の階層内容も再現されませんでした。 >for /R "C:\tesuto" %%F in (*) do copy /Y nul %%F こちらについては copy の段階で引っかかっている状態なのでまだ試しておりません。 ちなみに、今の今まで書き忘れていたのですが、OSはWindowsXP Pro SP2を使用しております。 どうもありがとうございました。

その他の回答 (7)

  • Werner
  • ベストアンサー率53% (395/735)
回答No.8

> 早速ですがこちらの記述を試してみましたがコピーされませんでした。 いや、その記述はC:\tesuto以下のファイルのサイズを0にするものだから ファイルは増えませんよ。 「直接ファイルサイズを0にするような物でも構いません。」って書いてたからね。

noname#87418
質問者

お礼

ご回答ありがとうございます。 >いや、その記述はC:\tesuto以下のファイルのサイズを0にするものだから >ファイルは増えませんよ。 そうでしたか、いやはや、お恥ずかしい。 テスト用ディレクトリのファイルのサイズが元々0だったので挙動が分かりませんでした。 改めて試してみましたが、見事に動作いたしました。 バッチファイル用の記述も問題なく動作しました。 だた、本当に危険で怖い記述ですね、一歩間違えたら大変な事になるんじゃないかと思いました。 バッチファイルを書き換えずにあらかじめ実行場所を定めておき サイズを0にしたいファイルをそこへ移動させた方が良いかもしれませんね。 本来であれば0サイズでコピーという動作が望ましかったのですが 同様の結果が数クリックで得られるので大きな問題はありません。 今回は大変助かりました、感謝しきれないくらいです、本当にありがとうございました。

noname#87418
質問者

補足

申し訳ありません、家を空けていたもので、お礼が遅くなってしまいました。

  • Werner
  • ベストアンサー率53% (395/735)
回答No.6

サイズ0のファイルはコマンドプロンプトで copy nul size0.txt とすれば作成できます。 また、コマンドプロンプトで dir /b /s とすれば、カレントディレクトリ以下のファイルパスが全て出力されるので この結果を適当なファイルにリダイレクトしておき、 テキストエディタの置換機能などで行頭に copy /Y nul を付加したバッチファイルを作れば目的のことはできると思います。 (/Yは上書き確認のメッセージを表示させないオプション。) バッチファイルが書けるならforループなどを使えばもっと自動化できるでしょう。

noname#87418
質問者

お礼

ご回答ありがとうございます。 コマンドプロンプトですか。 >また、コマンドプロンプトで >dir /b /s >とすれば、カレントディレクトリ以下のファイルパスが全て出力されるので >この結果を適当なファイルにリダイレクトしておき ご提示の方法に従い、ここまでは無事出来ました。 C:\tesuto\1 C:\tesuto\2 C:\tesuto\1\a.txt C:\tesuto\1\b.txt C:\tesuto\1\c.txt C:\tesuto\2\d.txt C:\tesuto\2\e.txt C:\tesuto\2\f.txt テスト用のディレクトリを指定し、このような形でファイルが出力されました。 次に、 >テキストエディタの置換機能などで行頭に >copy /Y nul >を付加したバッチファイルを作れば目的のことはできると思います。 >(/Yは上書き確認のメッセージを表示させないオプション。) こちらを試してみましたが残念ながらうまく処理が行われませんでした。 上記に挙げた出力内容にcopyコマンドを組み合わせるのですよね? コマンドプロンプトなどは不慣れでいまいち勝手が分からず、 よろしければ具体的な記述の仕方を教えていただけると助かります。 >バッチファイルが書けるならforループなどを使えばもっと自動化できるでしょう。 バッチファイルについては>dir /b /sの段階でも既に利用しましたので多分大丈夫だとは思いますが、 私はコマンドプロンプト自体ほとんど使ったためしがないので、 forの利用方法に付いては分かりません、よければ書き方を教えて下さればと。。 とりあえず、回答者様のおっしゃる方法ですと。 1. dirコマンドで階層内容を表示、内容をファイルに出力。 2. 出力されたファイル内容を置換。 3. copyコマンドでファイルを読み込みファイルサイズ0でコピー。 という3行程で求める動作が得られるわけですよね? これで上手く行くのであればまあ良いのですけどもう少し簡略化する方法は無いのでしょうか。 どうもありがとうございました。

  • bardfish
  • ベストアンサー率28% (5029/17765)
回答No.5

ハッキリ言うと、そういう目的に価値を見いだす人が殆どいないのでその様なことを一括で行うソフトはありません。 そういう結果を求める人は自分でプログラムを作ります。そんなに難しくありません。 使い捨てで作ったことがあります。 わたしの場合はPerlでしたが、Perlの勉強に使っていた書籍に載っていたサンプルプログラムをチョット弄ればすぐに出来ます。

noname#87418
質問者

お礼

ご回答ありがとうございます。 >ハッキリ言うと、そういう目的に価値を見いだす人が殆どいないのでその様なことを一括で行うソフトはありません。 確かに私もそう思いました。 質問の前にも該当するツールを探しましたが見つかりませんでしたし。 >そういう結果を求める人は自分でプログラムを作ります。そんなに難しくありません。 私も自分で作れたら良いのにと思いましたが プログラミングなどは未経験で右も左も分からない状態ですし、時間も掛かりそうですから 出来れば公開されているソフトウェアで何とかしたいと思う気持ちがありまして。 自己作成についても検討してみます、ありがとうございました。

回答No.4

試していない状態での回答で恐縮ですが、 http://www.vector.co.jp/soft/win95/util/se343711.html 作成時にディレクトリ構造も指定可能ならば、おっしゃる操作が可能かと思います。(全て0バイトのダミーファイル)

noname#87418
質問者

お礼

回答ありがとうございます。 ご提示のツールを試してみました。 残念ながら思うような結果は得られませんでした。 テキストやxlsファイルを指定しファイルやフォルダを作成する事は可能でしたが、 テキストかxlsしか読み込む事が出来ないのでディレクトリを直接指定し階層を丸々コピーする事は不可能でした、 あらかじめツールの書式に従い階層内容をテキストかxls形式に変換する必要があります。 フォルダの作成も可能と書いてあったので期待したのですが、 階層を一気に作成処理する事は出来ませんでした。 そもそもサブフォルダを作るという事が出来ませんでしたので。 例えば、 a.txt b.txt c.txt と記述したテキストからファイルかフォルダを出力すれば、 上記の通りの名前のファイルかフォルダが指定ディレクトリに対し作成されます、 可能な動作はこれだけで複雑な書式には対応しておらず、 フォルダ1 │ ├ フォルダ2 │ └ a.txt │ ├ フォルダ3 │ └ b.txt │ └ フォルダ4   └ c.txt 例えばこの様な形の物を一気に作成する事は不可能でした。 どうもありがとうございました。

  • kmrt
  • ベストアンサー率47% (43/91)
回答No.3

A.No1です 私の持っている知識では同一ディレクトリ構造を 0バイトでコピーする手段を知りません。 ちなみに下記URLのツールであればいかがでしょう? CSVでの摘出できるので利用に値すると思いますよ。

参考URL:
http://www.vector.co.jp/vpack/filearea/win/util/file/list/
noname#87418
質問者

お礼

ご回答ありがとうございます。 >私の持っている知識では同一ディレクトリ構造を >0バイトでコピーする手段を知りません。 そうですか、残念です。 >ちなみに下記URLのツールであればいかがでしょう? >CSVでの摘出できるので利用に値すると思いますよ。 ありがとうございます、 ところで、ご提示のURLですとソフトウェアの一覧がずらっと出るわけですが、 具体的にはなんというソフトでしょうか?この中から各自探せばいいのでしょうか。 どうもありがとうございました。

noname#210617
noname#210617
回答No.2

ANo.1様の回答で目的は達成されるものと思います。 >サイズ0のファイルを作成 コマンドプロンプトで copy con x.txt[Enter] ctrl-z とすれば、作成できます。 conはコンソールのことで、キーボードからの入力をx.txtにコピーすることになります。ctrl-zはその入力を終了させます。 または、メモ帳を起動して、何も入力しないで「名前をつけて保存」しても作ることができます。

noname#87418
質問者

お礼

ご回答ありがとうございます。 ええと、自動で作成する方法はないのでしょうか? >コマンドプロンプトで この方法ですと1構造ごとに、 コマンドプロンプトを開く or バッチファイル起動 ↓ 文字入力 ↓ 終了 という手順を行わなければなりません。 >または、メモ帳を起動して、何も入力しないで「名前をつけて保存」しても作ることができます。 こちらの方法も同様で、ファイルとフォルダの数だけ新規作成からファイルとフォルダを作成し コピー元から名前をコピーして貼り付け、という作業を行わなければなりません。 なんとか一括で行う方法は無いのでしょうか。 どうもありがとうございました。

  • kmrt
  • ベストアンサー率47% (43/91)
回答No.1

フォルダー・ファイル構造を確認するだけであれば コマンドプロンプトにて<tree>コマンドを利用されては? 私は<tree>コマンドの出力情報をテキストファイルに出力して確認等に利用してます。 例> tree [表示したいパス] > [保管テキストファイルのパス] CドライブのProgram Filesフォルダー内の情報をCドライブの<tree.txt>へ出力するには下記のとおりになります。 tree c:\Program Files > c:\terr.txt

noname#87418
質問者

お礼

早速のご回答ありがとうございます。 treeですか、大変申し訳ありませんが既にテキストデータでの管理は行っております。 treeコマンドは今回初めて使いましたが、出力内容のカスタマイズが乏しいと感じました。 私は普段テキストの出力にWin Treeを使用しております。 また、テキストですと例えばソートなどが行えませんし閲覧時に色々と苦労させられます。 そういう意味でサイズ0の構造を丸々とコピーしたいと考えています。 また何かありましたらご回答いただけると助かります、 どうもありがとうございました。

関連するQ&A

  • 特定ディレクトリ以下の複数のファイルのサイズを一括で0にしたい

    特定のフォルダ(ディレクトリ)以下の複数のファイルのサイズを一括で0にしてくれるツールを探しています。 例えば フォルダ0 ├フォルダ1 │ ├ a.txt (5KB) │ ├ b.jpg (1MKB) │ └ フォルダ2 │    └c.exe (20MB) └ フォルダ3   └ f.exe (500MB) という構造があったとして フォルダ0 ├フォルダ1 │ ├ a.txt (0KB) │ ├ b.jpg (0KB) │ └ フォルダ2 │    └c.exe (0KB) └ フォルダ3   └ f.exe (0KB) この様にディレクトリ以下を直接ファイルサイズを0にするようなソフトウェアを探しています。 以下の質問の中でコマンドプロンプトを利用してする方法があります。 http://okwave.jp/qa4340139.html 上記の方法で試してみましたが出来ませんでした。 例えばコマンドプロンプトを開くと C:\Documents and Settings\Owner> のようにはじめに設定されます。この語尾に C:\Documents and Settings\Owner>for /R "E:\フォルダ\フォルダ" %%F in (*) do copy /Y nul %%F のようにしてエンターを押しても「%%F の使い方が誤っています。」 と表示されディレクトリ以下を直接ファイルサイズを0にできません。 心当たりのある方、どの様なご意見でも構いませんので ご回答頂けると幸いです。宜しくお願い致します。

  • 圧縮ファイルが全て263kbに!

    windows xpを再インストールをしたら、rar,zip,lzhなどの圧縮ファイル全てが263kbになってしまいました。どうすれば良いでしょうか?

  • ファイル ロック?

    txt jpg などzip rarなどで無圧縮まとめたファイル 解凍、ファイル名変更、出来ない状態にして 閲覧だけは出来る状態に出来ますか?

  • 圧縮せずして、圧縮後のファイル容量を確かめる・・・

    ZIP、LZH、RARなどにファイル(やフォルダ)を 実際に圧縮せずして、圧縮後の容量を予め確かめられる モノはないでしょうか? よろしくおねがいします。

  • 拡張子がわからなくなった圧縮ファイルのみわけかた

    圧縮ファイルがあるのですが拡張子がわからなくなったときのメモ帳での見分け方というのはどうしてやるのですか? メモ帳を開いてその上にその圧縮ファイルを乗せてみたときに最初の文字がなになにだったらZIP,RAR、Ace,Cab,Lzh、Exe,などあったとおもうのですがそれを教えてください。

  • .exeファイルが開けません

    bearmakiさんの質問に類似しているのですがCD-ROM や WEB上の.exeファイルが開けません。 他の圧縮形式(lzh.zip.rar等)は問題なく落とせるのですが、exeファイルだけは文字化け画面になってしまいます。以前はなにも問題なかったように思うのですが 原因がわかりません。 特に環境もかわってないのですが・・・。

  • すべてのHDのファイルが179kbに。

    ある日、突然、パソコン内臓HD(C,D)、外付けHDの中に入っている zip,rar,mp3,jpgファイルがすべて179kbになってしまうという事態が起こりました。 mpg,avi,gif,bmp,exeファイルなどは、無事でした。 合計7つのHDに入っていた全てのzip,rar,mp3,jpgファイルがパーに なってしまい大変困っています。 フォルダの階層は関係なしです。 ファイル名(拡張子を含め)だけが残っている状態です。 更新日時が全て統一されており、そのときに起きた出来事のようです。 原因、対処法、前例など、ご存知の方いらっしゃいましたら、教えてください。 ちなみに、システムの復元、ボリュームエラーチェックなどは試しましたが無理でした。

  • 画像付きの大きいサイズのエクセルファイルのメール送信

    エクセル2000に、100KbくらいのJPEG画像を6枚ほど貼り付けたレポートを作成したところ、10Mbくらいのファイルになりました。メールで送ろうと思い、さまざまな圧縮方法(cab、lzh、zip等)試みましたが、せいぜい7、8Mbくらいになっただけで、とてもメールで送れるサイズではありません。なにかうまい方法ないでしょうか。

  • rar 又は zip 形式で、多量のファイルを個別圧縮する方法について

    1. ファイル数は5千個弱あり、今後増える可能性があります。 2. 拡張子は様々ですが、jpg txt dat mpg が多いです。 3. ファイル名は日本語が使われています。 4. ファイルサイズは数KB~500MB程度までまちまちです。 5. OSはWindows XP SP3 で、有料のソフトはWinRAR以外はできるだけ使わずに済む方法を優先。 6. 可逆圧縮が必須なので、mpgのエンコード等は除外して下さい。 この条件で、全てのファイルを個別に圧縮したいのですが、数が多いため手動ではとてもやりきれないので、何かいい方法は無いでしょうか。 圧縮後のファイル名は、[元のファイル名.rar] のように元のファイル名が一見してわかるようになっている必要が有り、連番のファイル名等になっては困ります。 普段はWinRARを使っていて、.rarか.zipをメインで使っているので、なるべくrarかzipで希望します。 jpgやmpgが圧縮の効果が低いという事はわかっていますが、それは差し置いてお願いします。

  • 圧縮フォルダが解凍できません><;

    最近、圧縮フォルダ(確認済はLzhとZipだけですが・・・)が解凍できません>< ZipファイルをDLしてきて ドラッグ アンド ドロップで他のフォルダに解凍しているんですが フォルダの中身が空になります WindowsLiveMesseで ファイルを受信するときも 時々受信完了したのにフォルダのにファイルがありません><;; Lzhファイルは移動させようとするとアクセスが拒否されました とでます Zipファイルを開いたときは ファイルは表示されているんですが>< サイズは (例) ○○.zip→○○(フォルダ)→ファイルA,ファイルB ↑2mb   ↑0kb      ↑1mb   ↑1mb とかになります フォルダサイズは0になるのが><・・・ どうすればいいんですかね; OsはVista Ultimateです><

専門家に質問してみよう