解決済み

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

  • 暇なときにでも
  • 質問No.519438
  • 閲覧数1540
  • ありがとう数8
  • 気になる数0
  • 回答数9
  • コメント数0

お礼率 92% (52/56)

DOSに関してはシロート同然のわたしです。
お助け下さい!

あるテキストファイルをの中身だけを空にしたいのですが、
MS-DOSのコマンドで、ファイル名を指定して
ファイルの中身を全て消すコマンドってありますでしょうか?
ある様でしたら、実際のコーディング例も教えていただけませんか?
(「aaa.txt」と言うファイルをクリアするとしたら・・・?)


それと、もし、MS-DOSのコマンドの一覧が分かるホームページなどありましたら合わせて教えていただけませんでしょうか?

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

  • 回答No.8

ベストアンサー率 70% (336/476)

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

長くなりましたけど、
xcopy /I コピー元ファイル名 コピー先ファイル名
で確認メッセージなしで0バイトのファイルもコピーできるようになると思います。
お礼コメント
yuko59

お礼率 92% (52/56)

本当に、感謝、感謝、感謝!!!です。

できました!0件のファイルのコピー!

今回は、本当に助かりました!
仕事でどうしても早急に必要だったのですが、方法がわからなくて
むちゃくちゃ困っていたんです。

色々、調べていただいて、本当にありがとうございました!
ほんとに、いい人ですねー。感謝です!!
投稿日時 - 2003-04-11 09:47:29

その他の回答 (全8件)

  • 回答No.9

ベストアンサー率 70% (336/476)

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

ベストアンサー率 15% (2/13)

回答の流れに沿うかどうか分かりませんが、こんなバッチファイルを作ってみました。

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

お礼率 92% (52/56)

バッチファイルで処理した事がなかったので、試してみます。

この方法だと、バッチファイル名の後にファイル名を指定する事でファイルクリアができるんですね?

勉強になります!

ありがとうございました!
投稿日時 - 2003-04-11 09:58:31
  • 回答No.6

ベストアンサー率 19% (107/546)

OSとかの情報が無いんですが。。。

例えばWin2KのDOS窓で
読み取り専用のファイルaaa.txtに対して
copy zero.txt aaa.TXT ってすると

アクセスが拒否されました。
0 個のファイルをコピーしました。
と言った結果が帰ってきます。

ファイルの属性、ファイル名の誤りなど確認してみては如何でしょうか?

ありがちなのが、長いファイル名とか間にスペースのあるファイル名とかを
誤った指定方法でコピーしようとしているとか
意外にケアレスミスだったりします。
お礼コメント
yuko59

お礼率 92% (52/56)

私の使っているのはWIN98のDOS窓なんです。
名前は間違っていないと思うんですが・・・

そうなんです、

0 個のファイルをコピーしました。

ってメッセージが出ます。
でも、実際にはぜんぜんコピーされていなんです。
コピーしました、といいながらコピーされていないんです。
で、困ってまして・・・
#5で書いて頂いたご回答を見ると、仕様でできないんですよね・・・
投稿日時 - 2003-04-10 18:28:40
  • 回答No.5

ベストアンサー率 70% (336/476)

仕様です。
http://forum.nifty.com/fpcu/dosvcmd/copy.htm

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

お礼率 92% (52/56)

追記です!

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

よろしくお願い致します。
投稿日時 - 2003-04-10 18:52:20
お礼コメント
yuko59

お礼率 92% (52/56)

度々、ありがとうございます!


そうなんです、XCOPYコマンドも使用してみたんですが、

XCOPY A:\BBB.TXT  A:\'AAA.TXT

とすると、

AAA.TXTは受け取側のファイル名ですか、ディレクトリ名ですか
(F=ファイル、D=ディレクトリ)?

という、確認メッセージが戻ってくるのです。

スル~っとコピーできないので、他の方法を考えたのですが・・・
このメッセージ回避方法は無い・・ですか?
投稿日時 - 2003-04-10 18:29:50
  • 回答No.4

ベストアンサー率 19% (107/546)

>空のファイルをDOSコマンドでコピーしてるんですが、
>何故かコピーできないんです。

こっちを解決するのが本筋ですね。
エラーメッセージとか表示しないんですか?
お礼コメント
yuko59

お礼率 92% (52/56)

えーっと、確か、
「O個のファイルがコピーされました」とゆー、
ふざけたメッセージだったと思うんです。
0個って・・・コピーされてないじゃないですか、ねぇ!!

#3 hofuhofuさんの方法でも処理可能なんですが、
もし、0件ファイルのコピー方法をご存知でしたら
そちらも教えていただけませんか?
投稿日時 - 2003-04-10 17:33:28
  • 回答No.3

ベストアンサー率 70% (336/476)

お礼コメント
yuko59

お礼率 92% (52/56)

おぉ・・・!!
できました!簡単に!
感謝ですぅー!!


ありがとうございました!!
投稿日時 - 2003-04-10 17:27:18
  • 回答No.2

ベストアンサー率 19% (107/546)

簡単に出来そうかな?と思いましたがやってみると
あれれ?出来ないな~。

と言うことで、そのものズバリのコマンドは無いですね。

#1の方と違う方法で無理矢理実現

予め、mkdir zzz で空っぽのディレクトリを作成します。
次に、dir /b zzz > aaa.txtとすれば空のファイルになります。

UNIXであれば、ヌルファイルって言うのがあるので簡単なんですけど。。。
お礼コメント
yuko59

お礼率 92% (52/56)

ありがとうございました。

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

やってみます。
投稿日時 - 2003-04-10 17:26:14
  • 回答No.1

ベストアンサー率 15% (15/98)

中身が空のファイル(empty.txt)を予め作成しておいて
aaa.txt というファイル名で複製する方法ではダメですか?

delete aaa.txt
一度 aaa.txt を削除

copy empty.txt aaa.txt
empty.txt をコピーして aaa.txt を作成

ただし、Windowsに付属のメモ帳では空のファイルを作成できませんので、他のテキストエディタ(例えば秀丸など)を使って下さい。
お礼コメント
yuko59

お礼率 92% (52/56)

アドバイス、ありがとうございました。

実は、本当にやりたかった事は、hyper_toraさんがおっしゃった事、
空のファイルのコピーなんです!!
ところが!!
空のファイルをDOSコマンドでコピーしてるんですが、
何故かコピーできないんです。

だもんで、一旦、1レコードあるファイルを作っておいて後でクリアしようと思ったんですが・・・
投稿日時 - 2003-04-10 16:57:12
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ