VBScriptにより、サーバー上で単にレジストリーのキーごとすべて削除したいのですが、
キーがない場合そこでエラーになり終了してしまいます。
キーの有無にかかわらず、キーがある場合のみ削除するにはどのような
スクリプトにしたらよいかアドバイスをください。
スクリプトはこんな感じです。
--------------------------------------------------------------------
Dim WshShell
dim bKey
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.RegDelete "HKLM\Software\Tivoli\"
WshShell.RegDelete "HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\lcf\"
WshShell.RegDelete "HKLM\System\ControlSet001\Enum\Root\Legacy_lcfd\"
WshShell.RegDelete "HKLM\System\ControlSet001\Enum\Root\Legacy_TECWINADAPTER*\"
WshShell.RegDelete "HKLM\System\ControlSet001\Services\lcfd\"
WshShell.RegDelete "HKLM\System\ControlSet001\Services\lcfd\TECWINADAPTER*\"
WScript.quit
-----------------------------------------------------------------
UNIX Shell はわかるのですが、Windowsに関してはさっぱりわかりません(Object志向のものは苦手なもので・・・)。
もしこれらをUNIX Shell(b,c,k,Shell)でスクリプトを作成する場合、
ひとつひとつif文でファイルの有無を判定し、その結果を標準出力へ出し、その結果、「真」であれば(ファイルがある場合)そのキーを削除する・・・そして、スクリプトの結果を実行ユーザーのホームディレクトリー直下にファイルにして保存・・・というようにするのが一般的ですが、Windowsではどのように記述すればよいかご回答いただければ幸いです。
みなさんもお忙しいと思いますがよろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
★アイディア
・ちょっとした方法としては、最初に適当な『値』をキーに登録します。
このときにキーが無ければ『キー』が作成されますよね。
その状態ならばキーを削除してもエラーがでないと思います。
この方法。どうでしょうか?
・なお登録する『値』は名前が絶対に衝突しないものにします。
不安ならばレジストリから登録する『値』の名前を検索して見つからなかったら
登録するようにします。見つかったら別の適当な名前を登録するようにして下さい。
これでエラーを回避できると思います。多分。
・以上。
No.2
- 回答日時:
かなり乱暴な方法ですが、とにかく削除するだけでしたらWshShell.RegDeleteの前に、
On Error Resume Next
を入れてみてはどうでしょうか。
VBSでなくJSでしたらスマートなtry catchが使えます。
ありがとうございます!
”On Error Resume Next”は使えそうです!
あとは、エラー処理でどうやって失敗したキーをファイルに吐かせるかが
ポイントになりそうですが・・・
あっ、キーの書き込み権限がない。。。どうしよう。。。
WSHでは不可能ですかね~・・・
No.1
- 回答日時:
早速ご回答ありがとうございます!
"If IsNull"でキーの有無をファイルに出力できそうですね!
それができたら"for"文で"WshShell.RegDelete~"をまわせばよいですかね~!? Shellだったら簡単なのですが・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行すると メッセージボックスが表示されて okをク 4 2023/07/05 19:32
- UNIX・Linux redmineにメールを飛ばす方法 1 2022/09/13 22:02
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Windows 10 BitLocker 回復キーの入力 1 2022/10/09 15:23
- マルウェア・コンピュータウイルス FlashPlayerの削除とマルウェア感染について 5 2023/02/23 20:52
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAを記述したEXCELファイルを...
-
コンパイル時のエラーについて...
-
エクセルVBA インデックスが有...
-
VB6 使用中ファイルの確認
-
急にXMLパースエラーが表示され...
-
iPhoneが復元出来ない(不明エラ...
-
エクセルを起動したときにエラ...
-
VCで作成したDLLの使用
-
ビルダー7にて既存のHPをDL→修...
-
EXCEL このブックには更新でき...
-
サーバーに転送したファイルが0...
-
WordでURLをクリックしてそのペ...
-
勝手にdatファイルになるのです...
-
ギガファイル便って女の人のエ...
-
PDFファイルをホームページ...
-
TSファイルをスムーズに再生したい
-
auムービーメール(.amc)をPC...
-
ハイパーリンクを新規ウィンド...
-
録音アプリのPCM録音で4時間録...
-
既存のページをホームページビ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
急にXMLパースエラーが表示され...
-
コンパイル時のエラーについて...
-
VB6 使用中ファイルの確認
-
ホームページビルダーの【×】マ...
-
ファイルopenエラーになってし...
-
ワードがなかなか閉じないです
-
リンカ 致命的エラーについて
-
属性の値に特殊文字が大量にあ...
-
Excelのハイパーリンクがエラー...
-
thunderbardでエラーが出ます。
-
VBAを記述したEXCELファイルを...
-
local by flywheelについて
-
エクセルVBA インデックスが有...
-
韓国に送った添付ファイルexcel...
-
フォルダの削除について
-
ファイルをアップロードするとh...
-
Borland C++ Compilerのエラー...
-
セッション削除でエラー
-
WinMx使用中に・・・「ファイル...
-
電子書籍epub変換について
おすすめ情報