• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ネットワークドライブのファイル削除)

ネットワークドライブのファイル削除

このQ&Aのポイント
  • ネットワークドライブのファイル削除についての質問です。
  • ネットワークドライブに割り当てたフォルダからファイルが削除されてしまいました。
  • バッチファイルの実行時にデスクトップ上のファイルが消えました。なぜでしょうか?

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

  • ベストアンサー
noname#169205
noname#169205
回答No.1

pushdコマンドのパスが見つからない(ネットワークが存在しない場合も同様)のでカレントディレクトリは変化しない。 そのまま次のdelコマンドを実行 という流れです。 バッチファイルがデスクトップにあればバッチの起動時のカレントディレクトリはデスクトップになるのでデスクトップのファイルは削除されます。 また一部のファイルが残った理由はデスクトップの実態は複数に分かれている(個人用と共通用)いて 普通にデスクトップに作れば個人用に入りますが、ソフトのインストール等で作られたショートカットは共通用に入ることがありますので、 共通用にあったファイルは残ったのだと思います。

okum2
質問者

お礼

バッチはデスクトップに置いています。 それでカレントがデスクトップのまま削除されたのですね。 ありがとうございます。 パブリックのデスクトップにあるショートカットが残っていたようです。 ただ、SPの実行ファイルはユーザーに置いてあったのですが、こちらは プロパティを見ると、セキュリティでブロックされていたからかもしれません。

その他の回答 (2)

  • EF_510
  • ベストアンサー率50% (306/604)
回答No.3

バッチの成果としては、Dドライブの中身とネットワークの向こうにあるディレクトリを同期したいと言うことでしょうか? WindowsVista以降をご使用であればrobocopyを使用されるとスマートかもしれません。 このバッチはpushdの結果に関わらずカレントディレクトリに無条件削除を実行していますので危険ですね。 pushdの結果を確認してエラーなら止めてしまえば良いので… >pushd \\test\shared\aaaaa\bkup if ERRORLEVEL 1 exit >del /F/S/Q *.* >for /D %%f in ( * ) do rmdir /S/Q "%%f" >xcopy /E/H/R/K/Y "D:\*" \\test\shared\aaaaa\bkup\ 一行追加して止めてしまうだけでも防ぐことができます。

回答No.2

あ~、やっちゃいましたね。 こういうバッチでは、以下のように、消すべき場所に絶対パス指定で番兵ファイルを作ってみて、番兵ファイルが正しく作れたか調べる必要があります。 echo 番兵 > \\test\shared\aaaaa\bkup\KEYFILE.$$$ pushd \\test\shared\aaaaa\bkup if not exist KEYFILE.$$$ goto QUITBAT del /F/S/Q *.* for /D %%f in ( * ) do rmdir /S/Q "%%f" xcopy /E/H/R/K/Y "D:\*" \\test\shared\aaaaa\bkup\ :QUITBAT こうすると、echoやpushdに失敗してカレントディレクトリにKEYFILE.$$$が無い状態では、何もしません。

関連するQ&A