- PR -

DOSコマンドのファイル出力について

投稿者投稿内容
てーらーめいど
会議室デビュー日: 2007/04/24
投稿数: 17
投稿日時: 2008-12-15 16:50
WindowsXPにてファイル削除をDOSで行おうとしています。
削除実行自体は問題ないのですが、実行結果をログに出力するところがうまくいきません。

del xxxx.bak >> Job.log

ログとしては実行したDel文をそのまま出力したいと思っています。
*************************
del xxxx.bak
*************************

echoを使っても、ログの中は何も出力されません。
コマンドの実行文自体をファイル出力することはできないのでしょうか?
ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2008-12-15 17:16
copy con xx.dat
zzz
xxx
^Z

copy con xx.bat
echo off
del %1
echo on
echo del %1
^Z

xx.bat xx.dat >> xx.log

type xx.log

c:\xxx>echo del xx.dat
del xx.dat

です。


てーらーめいど
会議室デビュー日: 2007/04/24
投稿数: 17
投稿日時: 2008-12-15 18:48
ぴあちゃんさん、ありがとうございます。

echo off
del %1
echo on
echo del %1
とするという事は、やはり実行文だけでログに出力する事はできないという事でしょうか。

2段階になってしまいますか〜。
ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2008-12-15 19:17
del /?

copy con xx.za
xxx
zzz
aaa
^Z

del /S xx.za
削除したファイル - c:\sss\xx.za

って表示されました。

/S オプションですね。



BackDoor
ぬし
会議室デビュー日: 2006/02/20
投稿数: 831
投稿日時: 2008-12-16 00:18
ん?

引用:
ぴあちゃんさんの書き込み (2008-12-15 19:17) より:

del /?

/S オプションですね。


それ間違いですね。
/S オプションは全てのサブディレクトリから削除であって表示には無縁かと。

delコマンド時の結果のリダイレクトは出来なかった筈(遠い記憶w)。

ぴあちゃん氏のアドバイスされた方法でも良いですが、個人的にはdelコマンドの
前と後に対象ディレクトリのdirをリダイレクトする方法が好みです。
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-12-16 09:26
# 脱線ですが

del コマンドのヘルプより:
引用:

ファイル (複数可) を削除します。

DEL [/P] [/F] [/S] [/Q] [/A[[:]属性]] 名前
ERASE [/P] [/F] [/S] [/Q] [/A[[:]属性]] 名前

名前 ファイルまたはディレクトリ (複数可) の一覧を指定します。
複数のファイルを削除するときはワイルドカードを使用します。
ディレクトリが指定されたときはディレクトリ内のすべてのファ
イルは削除されます。

/P 各ファイルを削除する前に確認のメッセージを表示します。
/F 読み取り専用ファイルを強制的に削除します。
/S 指定されたファイルをすべてのサブディレクトリから削除します。
/Q ワイルドカードを使用して一括削除するときに、確認のメッセージ
を表示しません。(QUIET モード)
/A 属性により削除するファイルを選択します。
属性 R 読み取り専用 S システム ファイル
H 隠しファイル A アーカイブ
- その属性以外

コマンド拡張機能を有効にすると、DEL と ERASE は次のように変更されます:

/S スイッチの表示形式が逆になり、見つからなかったファイルではなく
削除されたファイルだけが表示されるようになります。


てーらーめいど
会議室デビュー日: 2007/04/24
投稿数: 17
投稿日時: 2008-12-16 10:55
みなさんありがとうございます。

del xxxx.bak /S >> Job.log
でイメージしていたログが出ましたが、仕様通りサブディレクトリのファイルも消されてしまいました。(笑)

スクリプトプログラマさんの方法ではほぼイメージ通りですが、ログとしては余計なのも出てしまいます。
********************************
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\\tmp>del xxxx.bak

C:\\tmp>
********************************
これをもうひと工夫すればなんとかできるような気がします。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2008-12-16 15:21
> echo del xxxx.bak | cmd 2>&1 | findstr "del" >> Job.log
結果は
> type Job.logt
del xxxx.bak
プロンプトは cmdの変数で消せる

でも、古参ヲタの思い出エピソードのような袋小路感いっぱい。
だって「21世紀」 よ!

スキルアップ/キャリアアップ(JOB@IT)