• ベストアンサー

特定ディレクトリ以下の複数のファイルのサイズを一括で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にできません。 心当たりのある方、どの様なご意見でも構いませんので ご回答頂けると幸いです。宜しくお願い致します。

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

  • ベストアンサー
回答No.5

回答4です。横から失礼します。 >確かに長いファイル名のファイルを作成してみましたが >実行されませんでした。 copy /Y nul %%F を copy /Y nul "%%F" とダブルクォーテションで囲ってみてはどうでしょう。

aaiok
質問者

お礼

ご回答有難う御座います。 長いファイルを作成して実行するとできました。 お陰で本来の質問を解決することができました。 この度はご回答頂き有難う御座いました。

その他の回答 (4)

回答No.4

回答2です。 >C:\Documents and Settings\Owner>tree E:\フォルダ\フォルダ >folderinfo.txt >と実行しても構造を表示できないのですが C:\Documents and Settings\Owner>tree E:\フォルダ\フォルダ とすると画面に表示されます。 C:\Documents and Settings\Owner>tree E:\フォルダ\フォルダ >folderinfo.txt とすると、画面ではなく「folderinfo.txt」に書き込まれます。ファイルは「C:\Documents and Settings\Owner」に作成されます。

aaiok
質問者

お礼

ご回答有難う御座います。 無事に実行することができました。 非常に視覚的に分かりやすく便利です。 この度はご回答頂き有難う御座いました。

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.3

こんにちは。  #1さんの言われる方法でやってうまくいきましたが、パスの設定がロングファイル名だとうまくいきませんでした。  DOSプロンプトで「command」を打つと、カレントディレクトリの名前がショートファイル名ででるので、batファイルのパス指定もショートファイル名で記述したらうまく実行でき、0サイズのファイルになりました。 では。

aaiok
質問者

お礼

ご回答有難う御座います。 コマンドプロンプトで以下のように C:\Documents and Settings\Owner>command と打つと確かにC:\Documents and Settings\Owner>の ショートファイル名が出てきます。 例えば「E:\フォルダ\フォルダ」をショートファイル名に 変更する場合、コマンドプロンプト起動後どのように したら良いのでしょうか。また特定の下層にあるファイル名の パスを調べる方法を教えて頂ければ幸いです。 宜しくお願い致します。

aaiok
質問者

補足

下記のお礼の補足 ファイル名が長いと実行しても反映されないということですね。 確かに長いファイル名のファイルを作成してみましたが 実行されませんでした。

回答No.2

コマンドプロンプトから実行するときは、「%%F」を「%F」のように%を1個に変更します。 ところでこちら、 http://okwave.jp/qa4340139.html には、 >バックアップ用途で容量を食わずファイル、フォルダの構造だけを >見る事が出来る様にする為、どうしても必要です。 とありますが、実際のフォルダやファイルの作成する必要はないのでは? フォルダ0 ├ フォルダ1 │ ├ a.txt (1KB) │ ├ b.jpg (50KB) │ └ c.exe (200KB) │ └ フォルダ2   ├ d.lzh (3MB)   ├ e.rar (20MB)   └ f.zip (500MB) と書いてあるテキストファイルがあればいいのでは? それなら、コマンドプロンプトで tree <対象フォルダ> >folderinfo.txt で、どうでしょう?

aaiok
質問者

お礼

ご回答有難う御座います。 「%%F」を「%F」のように%を1個に変更後 コマンドプロンプトを実行するとできました。 また、リンク先の質問者さんがフォルダを なぜ作成したいのかが良くわからないので、 ちょっとわからないのです。 ただ、ファイル、フォルダの構造を知る方法は、 補足として知りたいので今回の場合ですと C:\Documents and Settings\Owner>tree E:\フォルダ\フォルダ >folderinfo.txt と実行しても構造を表示できないのですが 具体的にどのように表示するのでしょうか。 ご回答頂ければ幸いです。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

for /R "E:\フォルダ\フォルダ" %%F in (*) do copy /Y nul %%F  これは、コマンド ではなく、スクリプトなので、このまま タイプしても実行できません。  メモ帳などの、テキストエディタを起動して、そこに上記の for /R "E:\フォルダ\フォルダ" %%F in (*) do copy /Y nul %%F  を書き込んで、nullcopy.bat などのように *.bat の名前を つけて、ファイルを保存します。  ほぞんしたファイル名を実行すれば、・・・   C:\Documents and Settings\Owner> c:\temp\nullcopy.bat  のように実行できます。

aaiok
質問者

お礼

早速のご回答ありがとうございます。 お陰で解決することができ有難う御座いました。 #3さんの回答と重複するかもしれませんが、 for /R "E:\フォルダ\フォルダ" %%F in (*) do copy /Y nul %%F 例えば「E:\フォルダ\フォルダ」がロングファイル名になる場合、 #3さんの回答ですと実行できないとのことのようですが これをショートファイル名に変更するとできるということのようです。 そこでロングファイル名をショートファイル名に変更後 上記の*.bat ファイルを実行する方法をご回答頂けると幸いです。 宜しくお願い致します。

aaiok
質問者

補足

下記のお礼の補足 ロングファイル名とはファイルのことでフォルダと間違えていました。 つまり、長いファイルのものだけ0ファイルにならずに残ってしまいます。 解決策としてファイル名を短いファイル名にリネームする必要があるようです。 そこで短いファイル名にリネーム後、ファイルを0にするスクリプトがあればご回答頂ければ幸いです。

関連するQ&A