0

私はこの VBS のすべてにかなり慣れていないので、基本的に必要なのは単純な VBS スクリプトを 1 つ作成することだけ800A0035です800A004C。特定の PC を 2 回目に実行するとすぐに、正常に動作し、本来の動作を実行します。ちなみに、自分のパソコンでは初回実行でもOKです。エラーが間違ったパスに関係していることはわかっていますが、スクリプトを数回確認したところ、スクリプトが正しいことを 100% 確信しています。

スクリプトは次のとおりです。

Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile "rar.bat" , "rarp.bat"
'HideBat.vbs
CreateObject("Wscript.Shell").Run "rarp.bat", 0, True

スクリプトが行うことになっているのは、コマンド プロンプトをポップアップ表示せずに、rar.batファイルの名前を変更しrarp.batてそのバッチ ファイル ( ) を実行することです。rarp.batバッチファイルが何をするかは関係ないと思いますが、とにかく、WinRARを実行するだけです。

rar.batファイルと VBS スクリプトは同じフォルダーにあるため、スクリプトで相対パスを使用しました。複数のコンピューターでスクリプトを実行する必要があるため、絶対パスは使用できません。

インターネット上のどこかで、C:\Windows\System32相対パスが使用されている場合、デフォルトで VBS スクリプトが最初にファイルを検索することを読みました。スクリプトで絶対パスを使用しようとしましたが、どちらも機能しませんでした。これが私がどのように見えるようにする必要があるかです:%systemdrive%\users\%username%\appdata\roaming\rar.batしかし、これは単に VBS スクリプトでは機能しませんでした。

私が本当に必要としているのは本当に単純なスクリプトだと思いますが、どうやらそれを適切に機能させるのはかなり難しいようです。私を助けてくれた人たちにとても感謝しています。

よろしくお願いします。

よろしく。

4

1 に答える 1

1

スクリプト (少なくとも公開されている部分) がエラーを発生させる唯一の方法は、名前を変更するためのソース ファイルが見つからないことです。完全なスクリプトとエラー メッセージを確実に追加する必要があります。これは、UAC など、他の PC よりも寛容な PC のセキュリティ設定が原因であると思います。他の PC では、ファイルを c:\test のようなマップに配置し、ファイル rar.bat が同じマップに存在することを確認した後、再度実行してみてください。他の PC で同じ資格情報 (管理者) を持っていますか? バットファイルを非表示で実行したいだけなら、なぜ名前を変更するのですか?

どのようにバットをダウンロードしますか? そして、どのようにスクリプトが呼び出されますか? 2 回目はもはや問題ではないというタイミングの問題である可能性があります。その場合、ファイルがすでに存在するかどうかをスクリプトで確認し、存在しない間はループでスリープします

絶対パスを使用したい場合は、これを試すことができます

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
Set WshSysEnv = WshShell.Environment("PROCESS")
path = WshSysEnv("USERPROFILE") & "\appdata\roaming\rar.bat"
wscript.echo path
objFSO.MoveFile path , "rarp.bat"
CreateObject("Wscript.Shell").Run "rarp.bat", 1, True
于 2012-09-01T22:08:27.840 に答える