2011-07-01 7 views
1

私は、ある場所から別の場所へのファイルの移動を含む多くのタスクを実行するVBScriptを持っています。コピー/移動のVBscriptスケジュールされたタスクエラー

ロット/ /フォルダを削除/フォルダを作成し、私はそれをダブルクリックして手動で実行したときに動作するようにスクリプト全体を取得することができるよ。この

Set filesys = CreateObject("Scripting.FileSystemObject") 
filesys.CopyFile "D:\Test Now\test.txt", "W:\test_2\test.txt" 

とエラーなしのようなファイルを削除やってくる。ただし、スケジュールされたタスクから実行すると、「パスが見つかりません」というエラーが表示されます。私はこのエラーをDBに書き込んでこのエラーを発見しました。

スクリプトはそのエラーでスタックしているオフ

ON ERROR RESUME NEXT 

がある場合。オンに設定すると、スクリプトはその機能を実行しない操作をスキップします。

私は4倍のパスをチェックして正しいことを確認しました。スケジュールされたタスクでスクリプトを実行するときに気をつけるべきことがありますか?

+0

コマンドラインで 'dir" D:\ Test Now \ test.txt "と' dir "W:\ test_2 \" 'と入力するとどうなりますか? –

答えて

1

D:\とW:\ローカルドライブ、またはマップされたネットワークドライブですか?マッピングされている場合は、プロセスを実行しているユーザーが使用可能なドライブを持っていない可能性があります。権限のあるローカルアカウントとしてタスクを実行してください。また、そのアカウントにログインして手動でコマンドを実行することも最善です。それが動作することを確認したら、それが懸念される場合はセキュリティを強化することができます。

+0

はいW:\はマップされたドライブで、そのドライブに対する権利があります。私はそのドライブへの権利を持っており、スケジュールされたタスクの代わりに手動で実行すると動作させることができます。スケジュールされたタスクに関する権利に関する他の警告がありますか? – zentenk

+0

コマンドを手動で実行すると問題が発生するようですが、アカウントにドライブの変更権がある場合でも、スケジュールされたタスクの実行元アカウントにログインする必要があります – zentenk

0

これが頭に浮かぶ:あなたのパスを引用符で囲んでください" 2人のうちの1人にスペースがあります。そして、VBSscriptは確かにそれを好まないでしょう。

filesys.CopyFile "D:\Test Now\test.txt", "W:\test_2\test.txt" 

うん、ちょうどそれをテストした、それは実際にエラーを引き起こしていたものです。

ところで、あなたはこれを知っているかもしれませんが、非常に具体的な理由がない限り、デバッグの悪夢を入力しない限り、On Error Resume Nextを使用しないでください。

+0

ahhhh引用符を入力するのを忘れました私の質問では、私はスクリプトで、愚かな間違いをした!質問を明確にするために更新しました – zentenk

0

私が知っている古いトピックが、これは、誰かが助けるかもしれない:

私のスケジュールされたタスクは、特定のユーザーの下で実行されていました。 MMCのコンポーネントサービススナップインを使用して、ユーザーに「起動とアクティブ化」権限を与える必要がありました。これが完了すると、スケジュールされたタスクが正しく実行されました。

関連する問題