07/01/29 09:42:24 4eLwLnI10
>>582
★重大バグ①
#現象
ドライブルートにwrename.vbsを置くと、パスがD:\\~などとなり、エディタで開けない事がある
#原因
GetParentFolderNameは通常は末尾に\の付かないパス(D:\hoge\wrename.vbs→D:\hoge)を返し
ドライブルート下のファイル、フォルダを指定すると\を付けたドライブレター(D:\wrename.vbs→D:\)を返すが
その仕様に合わせた処理が取れていないため、"D:\"+"\"で\が二重になる
#対処法
x=fs.GetParentFolderName(WScript.scriptfullname)
if Right(x,1)<>"\" Then x=x+"\"
や、IsRootFolderプロパティなどでの例外処理をする
#コメント
実はD:\\というのは間違いってわけではく、スクリプト内(FileSystemObject)ではエラーにはならないけど
エディタによっては開けないものもあるのでスクリプト側での対処は必須
ドライブルートに置く人は少ないだろうけど、ドライブルートに置くなという注意書きをしないなら対処すべき
★重大バグ②
#現象
シングルプロセスで複数のファイルを扱えるエディタだと、ファイルの編集を終了させてもリネームが開始されない
#原因
Execオブジェクトの監視しかしていないから、ファイルの編集を終了させてもプロセスが終了しないと
Do until hide.Statusのループを抜けられない
#対処法
tempfileの更新日時を監視して、更新上書きされた時点でリネームを開始するなど
#コメント
更新日時監視にする場合、上書き=編集終了とは限らないので、「内容が更新されました. リネームを開始しますか?」
などの確認をした方がいいかもしれないが、煩わしいと感じる人も居るかもしれないから確認の有無は選択式とか
因みに実行したアプリの終了待ちは、わざわざExecオブジェクトを監視しなくても
WshShell.Runの第三引数をtrueにすると、そのアプリが終了するまで次の処理は行われない