• ベストアンサー

MS-DOSのコマンドでファイルをクリアするコマンドありますか?

DOSに関してはシロート同然のわたしです。 お助け下さい! あるテキストファイルをの中身だけを空にしたいのですが、 MS-DOSのコマンドで、ファイル名を指定して ファイルの中身を全て消すコマンドってありますでしょうか? ある様でしたら、実際のコーディング例も教えていただけませんか? (「aaa.txt」と言うファイルをクリアするとしたら・・・?) それと、もし、MS-DOSのコマンドの一覧が分かるホームページなどありましたら合わせて教えていただけませんでしょうか?

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

  • ベストアンサー
  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.8

これが正式な使い方かはわかりませんが(オプションの説明を見ていると違うような気が・・・)、/Iオプションをつけることで一応確認メッセージを消せるようです。 動作としては、コピー元のファイルが一つの時はコピー先に指定したものをファイルとして、コピー元のファイルが複数ある場合はコピー先をディレクトリとして扱うようになります。 ちなみに/Iの意味は、オプションの説明によると、 「受け側がなく、複数のファイルをコピーする場合、受け側をディレクトリとしてコピーします。」 だそうです。 英語サイトの説明には 「By default, xcopy prompts you to specify whether Destination is a file or a directory.」 とあるので、動作としてはこれであっているのかもしれません。 長くなりましたけど、 xcopy /I コピー元ファイル名 コピー先ファイル名 で確認メッセージなしで0バイトのファイルもコピーできるようになると思います。

参考URL:
http://www.microsoft.com/technet/prodtechnol/winxppro/proddocs/xcopy.asp
yuko59
質問者

お礼

本当に、感謝、感謝、感謝!!!です。 できました!0件のファイルのコピー! 今回は、本当に助かりました! 仕事でどうしても早急に必要だったのですが、方法がわからなくて むちゃくちゃ困っていたんです。 色々、調べていただいて、本当にありがとうございました! ほんとに、いい人ですねー。感謝です!!

その他の回答 (8)

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.9

#8の参考URLにしっかりと、 > You can suppress this message by using the /i command-line option, との記述がありました。 コピー元に複数のファイルもしくはディレクトリが指定されたときには、即コピー先をディレクトリを見なすため、メッセージを出す必要がなくなるとのことです。

  • yakki_
  • ベストアンサー率15% (2/13)
回答No.7

回答の流れに沿うかどうか分かりませんが、こんなバッチファイルを作ってみました。 kara.bat←バッチファイル名 ↓内容 del %1 type nul > %1 例えば、BBB.TXTの中身を空にするのであれば、 kara BBB.txt[enter] とすると、delコマンドで削除し、nul(空)を中身としてBBB.TXTを作りなおします。 一応、Windows98SEのDOSプロンプトで動作の方は確認しています。 それから、アクセスは拒否されました。は、多分読み取り属性が付いているからではないでしょうか? attribコマンドで、該当するファイルの属性にRが付いていないか確認してみては? >attrib aaa.txt[eneter] で、aaa.txtの属性が表示されます。

yuko59
質問者

お礼

バッチファイルで処理した事がなかったので、試してみます。 この方法だと、バッチファイル名の後にファイル名を指定する事でファイルクリアができるんですね? 勉強になります! ありがとうございました!

  • Traja
  • ベストアンサー率19% (107/546)
回答No.6

OSとかの情報が無いんですが。。。 例えばWin2KのDOS窓で 読み取り専用のファイルaaa.txtに対して copy zero.txt aaa.TXT ってすると アクセスが拒否されました。 0 個のファイルをコピーしました。 と言った結果が帰ってきます。 ファイルの属性、ファイル名の誤りなど確認してみては如何でしょうか? ありがちなのが、長いファイル名とか間にスペースのあるファイル名とかを 誤った指定方法でコピーしようとしているとか 意外にケアレスミスだったりします。

yuko59
質問者

お礼

私の使っているのはWIN98のDOS窓なんです。 名前は間違っていないと思うんですが・・・ そうなんです、 0 個のファイルをコピーしました。 ってメッセージが出ます。 でも、実際にはぜんぜんコピーされていなんです。 コピーしました、といいながらコピーされていないんです。 で、困ってまして・・・ #5で書いて頂いたご回答を見ると、仕様でできないんですよね・・・

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.5

仕様です。 http://forum.nifty.com/fpcu/dosvcmd/copy.htm NT系以外のdosのcopyではそうなるそうです。 どうしてもcopyでやりたければxcopyを使うことになります。 小さいファイル(0バイトのものを含む)なら、 type コピー元のファイル名 > コピー先のファイル名 で一応コピーはできます。 #3の回答はこれの応用です。 ちなみにNULはdosが用意しておいてくれる、0バイトのファイルと思っていてください。 本当は全然違いますけど、まともに話すとややこしくなるので・・・

yuko59
質問者

お礼

度々、ありがとうございます! そうなんです、XCOPYコマンドも使用してみたんですが、 XCOPY A:\BBB.TXT  A:\'AAA.TXT とすると、 AAA.TXTは受け取側のファイル名ですか、ディレクトリ名ですか (F=ファイル、D=ディレクトリ)? という、確認メッセージが戻ってくるのです。 スル~っとコピーできないので、他の方法を考えたのですが・・・ このメッセージ回避方法は無い・・ですか?

yuko59
質問者

補足

追記です! お願いしておいて何ですが、 #3でご回答いただいた方法で問題は大解決!!しましたので、 お時間があれば・・・で結構です。 よろしくお願い致します。

  • Traja
  • ベストアンサー率19% (107/546)
回答No.4

>空のファイルをDOSコマンドでコピーしてるんですが、 >何故かコピーできないんです。 こっちを解決するのが本筋ですね。 エラーメッセージとか表示しないんですか?

yuko59
質問者

お礼

えーっと、確か、 「O個のファイルがコピーされました」とゆー、 ふざけたメッセージだったと思うんです。 0個って・・・コピーされてないじゃないですか、ねぇ!! #3 hofuhofuさんの方法でも処理可能なんですが、 もし、0件ファイルのコピー方法をご存知でしたら そちらも教えていただけませんか?

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.3
yuko59
質問者

お礼

おぉ・・・!! できました!簡単に! 感謝ですぅー!! ありがとうございました!!

  • Traja
  • ベストアンサー率19% (107/546)
回答No.2

簡単に出来そうかな?と思いましたがやってみると あれれ?出来ないな~。 と言うことで、そのものズバリのコマンドは無いですね。 #1の方と違う方法で無理矢理実現 予め、mkdir zzz で空っぽのディレクトリを作成します。 次に、dir /b zzz > aaa.txtとすれば空のファイルになります。 UNIXであれば、ヌルファイルって言うのがあるので簡単なんですけど。。。

yuko59
質問者

お礼

ありがとうございました。 そうでしょ、そうでしょ、そんなんです。 簡単にはできないでしょ。 なんですっきりとしたコマンドをつくらないんでしょうねー。 (-_-メ) やってみます。

回答No.1

中身が空のファイル(empty.txt)を予め作成しておいて aaa.txt というファイル名で複製する方法ではダメですか? delete aaa.txt 一度 aaa.txt を削除 copy empty.txt aaa.txt empty.txt をコピーして aaa.txt を作成 ただし、Windowsに付属のメモ帳では空のファイルを作成できませんので、他のテキストエディタ(例えば秀丸など)を使って下さい。

yuko59
質問者

お礼

アドバイス、ありがとうございました。 実は、本当にやりたかった事は、hyper_toraさんがおっしゃった事、 空のファイルのコピーなんです!! ところが!! 空のファイルをDOSコマンドでコピーしてるんですが、 何故かコピーできないんです。 だもんで、一旦、1レコードあるファイルを作っておいて後でクリアしようと思ったんですが・・・

関連するQ&A