• ベストアンサー

バッチを走らせてそのバッチを削除したい

ある特定の日にバッチでサービスをスタートアップを自動から手動に切り替えたいと思います。 バッチを作ってWindowsタスクスケジューラで特定の日にバッチを読み取り手動にしようと 考えています。やりたい事は、そのバッチが走った後に自動で削除したいと思います。 1回切りプログラムを走らせて、そのプログラムを即破棄というようにやりたいのですが、 方法がわかりません。何か良いアイディアはないでしょうか?

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

  • ベストアンサー
noname#194317
noname#194317
回答No.2

お試しで、以下の超手抜きバッチファイルをXP ProSP3のコマンドプロンプトで実行しましたが、自分で自分を削除できちゃいました。まさかできるとは思っていなかった。衝撃の新事実!!ちなみにファイル名は「1.bat」です。 echo 1 del 1.bat ただし全く正常というわけにはいかず、実行後に「バッチファイルが見つかりません」というエラーは表示されますが、確かにバッチファイル自身は消えています。 でも内容が内容だけに、同じことをVistaや7で実行してうまくいくかどうかは微妙な気もしますが、試すだけでもやってみてはどうでしょうか。

mellow91
質問者

お礼

本当です!できました!VISTA、7では利用しません。私のXP SP3環境でできたのでよかったです!ありがとうございます!

その他の回答 (1)

  • nerimaok
  • ベストアンサー率34% (1125/3220)
回答No.1

「今動いているバッチファイル」は削除できません。 削除するための専用のバッチを別に用意して、そのバッチから続けて実行する形にすれば動くでしょう。 (call とかすると元のバッチは動き続けるから駄目だよ)

mellow91
質問者

お礼

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

関連するQ&A

  • スタートアップのファイルをバッチで削除

    windows2008のターミナルサービスでスタートアップにバッチファイルを設置していますが、 初回起動のみを動作させるために、 バッチ内にバッチファイルを削除する記述をしていますが、 動作ディレクトリがc:\windows\system32なので、 スタートアップのファイルは削除できません。 スタートアップのファイルをバッチで削除する方法はあるのでしょうか? またスタートアップのディレクトリ名の中に ユーザー名が含まれているのですが、 バッチファイル内に記述するのに、 これを別称などで、どのユーザーでも反応するように、する記述方法はあるのでしょうか?

  • バッチ処理でファイルの削除

    よろしく願いします。 特定のフォルダ内にあるファイル(pdf)を自動で削除するバッチを作りたいと思っています。 ファイルは20090507161506900.pdfみたいに頭に年月日が入っています。 削除条件として、30日前のものだけ削除したいです。 実行は、Windowsのタスク処理でやろうとしています。 どうかよろしくお願いします。

  • バッチファイルについて教えてください。

    windows7を使っております。 バッチファイルを作ってスタートアップのフォルダに入れたのですが、パソコンを再起動するとそのバッチファイルがなくなっていました。 (バッチファイル自体ではなく、ショートカットを入れてみても同じ結果でした) バッチファイルとは、一度使うとファイルとしては消えてしまうものなんですか? (ファイルがスタートアップにある間はそのとおりに動き、ファイルを削除すればその効果が なくなるというような使い方ができれば便利なんですが)

  • タスクスケジューラでバッチを起動させたい

    環境:Windows2008Serv. マイドキュメント配下にあるバッチをタスクスケジューラで 毎日一回起動させようと思っていますが、 思ったとおりの動作をしてくれません。 バッチの中身はWindowsのイベントログをテキストファイルに 吐き出すものです。 吐き出すテキストファイルはDドライブを指定しています。 バッチファイルを直接たたくと、Dドライブの指定の場所で テキストは作成されているのですが、 タスクスケジューラで指定した時刻が来ても、 テキストは作成されません。 タスクスケジューラの履歴を見ると、バッチ起動とバッチ完了と いう履歴が残っています。 又、タスクスケジューラから、作成したタスクを右クリックして 『実行』して見ても、履歴はきちんと完了までなっていますが、 実際には、テキストが作成されません。 開始オプションも色々なパスを試しましたがだめでした。 どなたか、タスクスケジューラでバッチを起動させる方法の分かる方 いらっしゃいませんか。

  • WindowsでCPU100%時に特定バッチを実行

    Windows10でCPU100%の状態が続いたら特定のバッチを実行したいのですが 簡単な方法を教えてください。 具体的にはとあるプログラムを24時間走らせる専用のパソコンがあるのですが そのプログラムのプロセスのCPU使用率が時々100%で張り付いてそのプログラムのパフォーマンスが著しく落ちます。根本的な解決ができればいいのですが海外制フリーウェアのため難しいです 今は手動でそのプログラムを終了するとCPU100%が解消されるのでまた手動で起動していますがこれを自動化したいです。なお強制終了しても問題ないプログラムです。 よろしくお願いします。

  • こんなのDOSバッチで組めるでしょうか

    WindowsNT4sp5です。 タスクスケジューラで朝から晩まで数分おきに動いている既存のDOSバッチがあり、そのなかで起動しているあるプログラムがたまにハングアップしてバッチがそこで止まったままになることがあります。 プログラムの性格上、そうなるとサーバーの再起動が必要でして、手動で行っています。 本来そのプログラム自体をなんとかするのが当たり前なのですが、事情があってそれは出来ません。 で、リモートからではありますがいちいち手動で再起動するのが面倒なので、そうなった場合に自動でサーバーを再起動させたいと思います。 プログラムは通常5分程度で終了するので、プログラムの処理の前行にATコマンドを書いて現在時刻の10分後とかにシャットダウンスケジュールをし、プログラム処理の後行にそのスケジュールを消す事を考えました(他にATは無いのでID0のスケジュールを消すコマンドを書く)。しかしこの場合、「現在時刻の10分後の時間でスケジュール」という部分がどうやったらいいのかわかりません。 別にATにこだわるつもりもないのですが、サードパーティ製のプログラム(フリー含む)は使えません。マイクロソフト物であればリソースキットもサーバーツールも使えるのですが・・ このような事を達成できる方法や情報をお持ちの方がいらしたら是非おしえていただけませんでしょうか。

  • Windows Server 2008からのタスクでうまくバッチがうま

    Windows Server 2008からのタスクでうまくバッチがうまく動作しない。 こんにちは。 Windows Server 2008からのタスクでうまくバッチがうまく動作しなくて困っております。 状況としましては: ・AサーバとBサーバがある。 ・Bサーバには特定のファイルがおいてあるCフォルダが存在。 ・AサーバからAdministrator権限でCフォルダまでネットワークドライブを作成。 ・AサーバのタスクスケジューラでCフォルダのファイルを取得しに行く  バッチファイルを作成(xcopyです) ところが、バッチを手動起動した際にはうまく動作するのですが、 タスクから起動するとCフォルダが見えないのかうまく動作しません。 ちなみにバッチは起動します。 なにかご意見があれば教えて頂ければ大変助かります。

  • データ削除についてご教授下さい

    こんばんは。 フォルダ単位で削除する方法を考えています。 状況:特定のディレクトリに日付(例:20050901)のフォルダが存在し、 翌月2日(タスクスケジューラにて実行)に前月データフォルダ(例フォルダ名に200509**) を削除する方法を考えています。 ※できるだけ処理内容は簡単にしたい ※特定ディレクトリに前月のデータフォルダリストの作成は可能(200509.txt) 上記の条件でバッチを作成したいと思っているのですが、 Windows2003Serverで動作させられるでしょうか? ご教授ください、宜しくお願いします。

  • 検索

    こんにちは。 特定のフォルダに入ってくる、ファイルの内容を読み取り、その中にある文字列が入っていた場合そのファイルを削除(移動でも可)するプログラムを組みたいと考えています。 今現在は、Windowsの検索機能を使い、ヒットしたファイルを削除しています。(手動です。) VBであれば、LineInputして文字列検索して、ヒットすればファイルを削除、無ければそのままと言った ものをタイマー・もしくはタスクスケジューラーを利用して自動化しようというイメージを持っています。 でも理想なのはVBで組んだりしないで、コマンドライン(バッチ)で出来れば、タスクスケジューラで楽チンだなぁと思っていたんですが、可能なんでしょうか? ファイルの中の文字列を検索するコマンドってないですよね? 何かヒントなりお願いします。 w2k pro vb6

  • タスクスケジューラでVB6のプログラムが実行しない

    VB6で作ったプログラムをWindows7において、タスクスケジューラで起動させたが、実行しない。 フォ-ムは1個だけで、その中のACTIVATEから、同フォーム内のルーチンを呼び出して目的の動作をさせるようになっています。手動で起動させると、目的の動作をして終了するが、タスクスケジューラではフォームを表示した状態で止まっている。そのフォームをクリックすると目的の動作を行う。なお、フォームはその時実行されている別のVB6のフォームの前面[最前面)に表示されている。目的は1日1回自動的に特定ファイルの状態を調べたいだけです。 よろしくお願いします。