Windows: 2011年10月アーカイブ

日頃、VBScript なんか全然触らないんだけど、一年に一度くらい、触らなきゃいけないことがある。
今週、正にその稀なケースが勃発した。

お客さんのサーバをリプレースして、元々古いサーバで動いていた VBScript(作ったのは俺に非ず)をそのまま移したんだけど、このスクリプトが謎の異常終了をする。

結局、あれこれ調査はしてみたけど原因不明。
おかげで、同じ機能のスクリプトを作成しないといけないハメになった。
ほんま、久しぶりだ。去年の春ぐらいに触って以来だ。
なので、つまんないところでハマっちゃった(^^;;;

スクリプト内から、DOS のコマンドを実行するのだが、

Return = WshShell.Run("xcopy " & fFolder & " " & tFolder & " /e /c /i /q /h /k /y", 0, true)

は問題なく実行されるのに、

Return = WshShell.Run("rd /s /q " & fFolder, 0, true)

は「エラー:指定されたファイルが見つかりません。 コード:80070002」っていうエラーになる。

fFolder に正しくフォルダー名がセットされてないのか!?っと思って色々調べてみたが、それは正しくセットされている。なんでぇ???・・・と思ってたら、本当に rd という実行ファイル(rd.exe or rd.com)が存在していない話だった(^^;
そう、rd はコマンドプロンプト(cmd.exe)の内部コマンドだったんだね。知ってたけど忘れてた(^^;

つーことで、

Return = WshShell.Run("cmd /c rd /s /q " & fFolder, 0, true)

みたいに、/c オプションで実行する内部コマンド(rd)を指定して、cmd を実行すればよかったんだね。
すっかり「見つからないファイル」というのが、fFolder のセットされているフォルダーのことなんだろうと思い込み、そこばっか調査してたんで、2時間近くこのせいで棒に振ったよ(^^;;

ま、これでまたしばらく VBScript を触ることもないので、またも次回、同じような内容で悩むんだろうな(^^;

このアーカイブについて

このページには、2011年10月以降に書かれたブログ記事のうちWindowsカテゴリに属しているものが含まれています。

前のアーカイブはWindows: 2011年9月です。

次のアーカイブはWindows: 2011年11月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら