プロが教えるわが家の防犯対策術!

●実現したいこと
 ネットワーク越しのとあるフォルダ内の全ファイルを
 0バイトにクリアしたい。

●実現出来た方法

rem 念のため、Zドライブを削除しておく。
net use Z: /delete /yes

rem 該当フォルダをZドライブに割り当てる。
net use Z: \\(IPアドレス)\hoge\hoge\hoge

rem カレントドライブをZドライブとする。
z:

rem Zドライブ配下のファイルを全てクリアする。
for %%i in (*.*) do (
echo %%i
type nul > %%i
)

rem Zドライブ接続を削除する。
net use Z: /delete /yes
exit

●問題点
 Zドライブが別の接続で使われていた場合、エラーにならないか?
 
●解決案
 ・net useのデバイス指定を「*」とする。
   この場合、「net use *: /delete /yes」という文で
  関係ない接続までdeleteされないでしょうか?

 ・あるいは「デバイス(ドライブレター)」を使わずに、
  ダイレクトにとあるフォルダを指して、クリア出来ない
  でしょうか?

A 回答 (4件)

> 「net use *: /delete /yes」という文で


  関係ない接続までdeleteされないでしょうか?

正確に書けば *: のようにセミコロン「:」をつけるとエラーになると思いますが...。実際に実行できているのでしょうか?

なお、今回のテーマではありませんが、
割り当てる場合は、
net use * ..... のように「セミコロンなし」で自動的にドライブが割り当てられるはずです。
net use * /delete のように指定すれば、接続中のネットワークドライブが全て表示されて、切断するかどうかの「Y/N」の要求があるはずです。
したがって関係ない接続まで自動的に切断されることはないはずです。

この回答への補足

早々のご回答ありがとうございます。

申し訳ございません。「*:」は誤記です。
「Z:」は実行しましたが、「*」については実行しておりません。

「net use z: /delete 」については、自動的に切断させたいため、
「/yes」パラメータを付けています。
これを「net use * /delete /yes」とやってしまうと、全接続が
自動的に切断されてしまうのでしょうか。
(適切なテスト環境がなく、実験できません)

補足日時:2010/04/12 16:17
    • good
    • 0

No.1の訂正です。


「:」はコロンでした。(セミコロンは誤りです)
    • good
    • 0

> 「net use * /delete /yes」とやってしまうと、全接続が


自動的に切断されてしまうのでしょうか。

はい。全接続が切断されてしまいます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

全接続が切断されますか。
ふぅ。やってみなくて良かったです。

お礼日時:2010/04/13 13:27

> ・あるいは「デバイス(ドライブレター)」を使わずに、


>   ダイレクトにとあるフォルダを指して、クリア出来ない
>   でしょうか?

---ここから---
for %%i in (\\(IPアドレス)\hoge\hoge\hoge\*.*) do (
echo %%i
type nul > %%i
)
---ここまで---
とやれば、ネットワークドライブに割り当てなくても処理できます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

まさに理想とする方法です。
(DOSコマンドに精通された方にとっては常識的な
 処理なのかも知れませんが)

採用させて頂きます。
重ね重ねありがとうございました。

お礼日時:2010/04/13 13:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!