Win7 Pro 32bit
AのPC(test)のSCSIのHDDのsharedフォルダをネットワークドライブ割り当てしています。
BのPCから下記のバッチを実行しています。
pushd \\test\shared\aaaaa\bkup
del /F/S/Q *.*
for /D %%f in ( * ) do rmdir /S/Q "%%f"
xcopy /E/H/R/K/Y "D:\*" \\test\shared\aaaaa\bkup\
先日、SCSIのHDDの電源がオフになっているのに気付かず、
このバッチを実行してしまいました。
そうすると、デスクトップのpdfやExcelのファイルが全て消えました。
ごみ箱にも入っていません。
ショートカットファイル(.lnk)だけは残っていました。
あと、MSからDLしたsp52782-26155.exeも残っていました。
ファイル復元ソフトで一部は戻ったの良かったですが、このバッチで
なぜローカルのデスクトップのファイルが削除されたのでしょうか?
「ネットワーク名が見つかりません」ということでdelは実行されないと思ったのですが。
No.1ベストアンサー
- 回答日時:
pushdコマンドのパスが見つからない(ネットワークが存在しない場合も同様)のでカレントディレクトリは変化しない。
そのまま次のdelコマンドを実行
という流れです。
バッチファイルがデスクトップにあればバッチの起動時のカレントディレクトリはデスクトップになるのでデスクトップのファイルは削除されます。
また一部のファイルが残った理由はデスクトップの実態は複数に分かれている(個人用と共通用)いて
普通にデスクトップに作れば個人用に入りますが、ソフトのインストール等で作られたショートカットは共通用に入ることがありますので、
共通用にあったファイルは残ったのだと思います。
バッチはデスクトップに置いています。
それでカレントがデスクトップのまま削除されたのですね。
ありがとうございます。
パブリックのデスクトップにあるショートカットが残っていたようです。
ただ、SPの実行ファイルはユーザーに置いてあったのですが、こちらは
プロパティを見ると、セキュリティでブロックされていたからかもしれません。
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.$$$が無い状態では、何もしません。
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\
一行追加して止めてしまうだけでも防ぐことができます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 ショートカットの作り方と使い方について教えて下さい。 3 2022/05/27 08:44
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- AJAX RPA(PowerAutomate)の実装について 1 2023/07/31 13:46
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- その他(クラウドサービス・オンラインストレージ) ファイルの保存をOnedriveのクラウド上にする方法を教えて欲しいです。 windows11にてデ 2 2023/02/16 13:37
- Google Drive Googleドライブで削除できないファイルがある。 5 2023/05/11 09:39
- ネットワーク ネットワーク資格情報について 2 2022/08/05 12:50
- その他(クラウドサービス・オンラインストレージ) OneDrive同期解除後、同期できていなかったローカルファイルを復元できますか? 1 2023/03/25 12:38
- Excel(エクセル) ファイル一覧表を使ったファイルの移動 5 2022/08/10 15:37
- ノートパソコン OneDriveのデータを外付けデータに切取りして保存したらデスクトップのファイルが無くなりました 2 2022/11/28 22:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10のタスクスケジューラ...
-
バッチファイルを実行後、終了...
-
順番にPINGを飛ばすバッチ
-
リモートデスクトップの取り合...
-
バッチ実行を意図的に失敗させ...
-
oracleのimp-00002エラーについて
-
WindowsのRANDOM関数を用いたバ...
-
バッチプログラムについて(編...
-
batファイルで、call使っても戻...
-
こういう缶バッチ(?)みたいな...
-
バッチの哲学
-
WinSCPがタスクスケジューラで...
-
クローム拡張機能の無効化有効化
-
ポケモン、ソウルシルバーで8個...
-
batが実行できない
-
コマンドの結果を変数に入れたい
-
回線速度をバッチファイルでフ...
-
windowsのbatファイルで「| の...
-
ログオンユーザを簡単に切り替え
-
Androidアルバムの画像を消去で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10のタスクスケジューラ...
-
バッチファイルを実行後、終了...
-
batファイルで、call使っても戻...
-
リモートデスクトップの取り合...
-
DOSコマンドのforで空白行をス...
-
DHCP設定バッチnetshコマンドに...
-
oracleのimp-00002エラーについて
-
batファイルを実行してコマンド...
-
バッチでEnterを認識させ...
-
バッチ実行を意図的に失敗させ...
-
バッチプログラムについて(編...
-
batが実行できない
-
コマンドの結果を変数に入れたい
-
バッチファイルでエクセルのマ...
-
バッチファイルでPC情報を取得する
-
コマンドプロンプトで最新のフ...
-
WindowsのRANDOM関数を用いたバ...
-
ログオンユーザを簡単に切り替え
-
バッチ実行時にバッチのファイ...
-
DBサーバとバッチサーバ
おすすめ情報