• ベストアンサー

VBScriptで別ドライブにフォルダを移動できません

VBScriptで別ドライブにフォルダを移動できません VBScriptで別ドライブにあるフォルダを移動したいのですが、以下のエラーで異常終了してしまいます。 Microsoft VBScript 実行時エラー: 書き込みできません。 移動はファイルシステム関連オブジェクトのMoveFolderメソッドを使用しています。 VBScriptで別ドライブにフォルダを移動する方法をご存知でしたらご教示頂けませんでしょうか。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

とりあえず問題が再現する最低限のコードを提示してみてはどうでしょうか。 それと、補足要求 ■ スクリプトはどこで実行しているのですか? ■ どこの管理者権限で実行しているのですか? ■ 移動元と移動先のドライブは、どちらもスクリプトを実行している PC のローカルですか? ネットワーク ドライブが混じっていたりしませんか? たとえば、ユーザーの PC の管理者権限で、ユーザーの PC でスクリプトを実行したとします。 移動先のドライブがファイルサーバーの共有フォルダーをマウントしたネットワーク ドライブだった場合、ファイルサーバーからするとユーザーの PC のローカル Administrator なんて知らない奴に書き込まれたくありません。 ファイルサーバーが知っているユーザー (ファイルサーバーと同じ Active Directory ドメインのドメイン ユーザー アカウントとか) なら権限さえ付いていれば書き込み可能です。

Q13810
質問者

お礼

※進展はしておりませんが、「お礼」の方に記載いたします。 アドバイス頂き有難うございました。提示する情報が足らず失礼いたしました。 移動元、移動先ドライブはどちらも同一ホスト上にあります。一つのディスクをパーティションで論理的に別ドライブにしています。ネットワーク上のドライブをマウントするといった形ではありません。完全にスタンドアロン状態でテストしています。 よってネットワークを介したホスト間の権限の問題ではありません。 しかしネットをさらって見た所、やはり権限上の問題でしかこのエラーは出ないようです。 ソースの一部を後述いたします(といっても特別なことをしておりませんが)。 まとめますと、 ・同一ホスト上の異なるドライブ間でVBScriptによってフォルダの移動ができない。 ・実行すると、「Microsoft VBScript 実行時エラー: 書き込みできません。」というメッセージが出て異常終了する。 ・同じスクリプトで同一ドライブ間では問題なくフォルダの移動ができる。 ・スクリプトの実行はホストの管理者権限で行っている。 ・ホストはスタンドアロン状態でテストしている。 以下スクリプトの実行ステートメント部分です。 -------------------------------------------------- Dim objFSO Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.MoveFolder "C:\test","D:\test" ---------------------------------------------------

Q13810
質問者

補足

問題が解決してはいないのですが、別の方法が見つかりました。 今回FileSysytemObjectのMoveメソッドを使用したのですが、ShellオブジェクトのMoveHereメソッドを使用すると問題なく移動できることが分かりました。 双方のメソッドにどのような仕様上の違いがあるか、調べてみます。 この質問はクローズします。有難うございました。

その他の回答 (1)

  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.1

まずはスクリプトからではなく、実際に操作して移動できるかどうかを確認してください。 もし移動できないのであれば、 1.コピー元のフォルダおよびコピー先のドライブ双方にアクセス可能なアクセス権が設定されていること 2.移動元のフォルダで、他のプロセス又は自プロセスからアクセス中のファイルがないかを確認すること 上記の2点を確認してみてください。

Q13810
質問者

お礼

回答いただき有難うございます。 GUIでは問題なく当該ファイルを移動できます。1については、アクセス権についても特別な設定はされておりません。また、VBScriptは管理者権限で実行しております。2についてはテスト用に新規フォルダを作ってそれをVBScriptによって別ドライブに移動させようとしましたが、それも同様のエラーでできませんでした。 同じドライブ間ならば問題なく移動できるため、ドライブをまたがる移動に何らかの制約があるのかと思い質問させて頂いた次第です。 ちなみにOSはXP、WSHバージョンは5.7です。

関連するQ&A

  • VBScriptでWindows以下のフォルダを移動したいのですがエラ

    VBScriptでWindows以下のフォルダを移動したいのですがエラーになります VBScriptでC:\Windowsフォルダ以下のフォルダを別の場所に移動したいのですが、以下のような実行時エラーが出ます。 Microsoft VBScript 実行時エラー: 書き込みできません。 移動したいフォルダはWindowsフォルダ以下の$NtUninstall~で始まるフォルダで、プロパティを見た所隠しフォルダ属性になっています。 移動はファイルシステム関連オブジェクトのMoveFolderメソッドを使用しています。 試しにコマンドプロンプトからmoveコマンドで同様のことをした場合、「アクセスが拒否されました」とメッセージが出ます。 VBScriptでWindows以下のフォルダを移動したいのですが方法を教えて頂けますでしょうか。

  • moveコマンドで別のドライブにフォルダを移動

    moveコマンドで別のドライブにフォルダを移動 コマンドプロンプトでmoveコマンドを使って フォルダを別のドライブに移動させたいのですが、 「アクセスが拒否されました」と出て移動が できません。 同じドライブ内だと問題なく移動できます。 また、別のドライブでもファイルなら問題なく移動できます。 フォルダは別のドライブに移動できないのでしょうか? 試してみたことは以下の通りです。 同じドライブでフォルダを移動 → ○ 同じドライブでファイルを移動 → ○ 別のドライブにフォルダを移動 → × 別のドライブにファイルを移動 → ○ コマンドの例 ■これだとうまくいかない  (別のドライブにフォルダを移動) set moto="E:\test1" set saki="C:\test2" move %moto% %saki% ■これだとうまくいく  (別のドライブにファイルを移動) set moto="E:\test1.txt" set saki="C:\test2" move %moto% %saki% よろしくお願いします。

  • vbscriptで新しいウィンドウを開きたい

    タイトルの件、下記URLのサンプルを参考にさせていただいたのですが、思うような結果が得られません。 http://homepage1.nifty.com/kodayan/vbs/app1/window01.html 上記サンプルの内容をそのまま使うと、 Microsoft VBScript 実行時エラー (0x800A01F4) この変数は宣言されていません。: 'Window' というエラーが表示されます。 そこで、変数として宣言すると今度は Microsoft VBScript 実行時エラー (0x800A01A8) オブジェクトがありません。: 'window' というエラーが表示されます。 いったいどうしたら良いのでしょうか?助けてください。 よろしくお願いします。

  • VBScriptで作るファイル移動プログラム

    プログラム未経験者ですが、教えてください。 あるフォルダに入ってくるテキストファイルを自動で別のフォルダに移動させるプログラムを作りたいのですがどなたか教えてくれませんか。 VBScriptというプログラムがメモ帳で書けると聞いたので、それでできればいいのですが。。。

  • フォルダの移動ができません

    Win8.1(64bit)のデスクトップを購入し、設定を行っております。 CドライブをSSD、Dドライブをデータ保存にしと考え、マイドキュメント(ドキュメント)、ミュージック、プクチャなどをDドライブに移動しようと試みておりますが、移動できません。 たとえば、マイドキュメントを右クリックして「プロパティ」→「場所」→「移動」→「指定のドライブを記入」→「フォルダ選択」すると、「パスが存在しません。パスを確認して再実行してください」というメッセージが出ます。 フォルダの移動に関するインターネットの書き込み(説明)では、上記のやり方のほかに、パスに関することは何もありません。そこでお尋ねなのですが、このような場合、なにをどうすればフォルダの移動が可能になるのでしょうか。 win8.1は初めてなので、どのような設定になっているのかわかっておりません。 初歩的な質問ですが、よろしくお願いいたします。

  • VBScript でのformat

    VBScript で、数値をフォーマットしたいのですが、 以下のようなエラーになります。 Microsoft VBScript 実行時エラー: この変数は宣言されていません。: 'Format' スクリプトの内容は以下のとおりです。 Wscript.Echo Format(13, "0000") OSはWindowsXPホームエディション(SP2)です。 よろしくお願いします。

  • [VBScript]ファイルの削除

    ファイルの削除を行うために以下のように書いて実行したところ。 「Microsoft VBScript 実行時エラー '800a0046' - 書き込みできません。」 というエラーメッセージがでてしまいました。 ------------------------------- Set fso = CreateObject("Scripting.FileSystemObject") Set src = fso.GetFile(FileName.txt) src.Delete ------------------------------- ファイルのプロパティを見てもフルコントロールを許可していますし、実行者もAdmin権限です。 どこをチェックすればよろしいでしょうか? または、どのようにコーディングすればよいでしょうか?

  • パソコン内の画像を別フォルダへ移動すると消える

    うちのパソコンのOSはXPです。 質問内容 「画像(スクリーンショットやネットから取り入れた画像、自分で描いたイラスト等)を保存し、別のフォルダへ移動(まとめる、整理等の目的で)すると画像が表示されなくなる。」 Winshotというソフトでスクリーンショットを撮って保存しました。 その撮影したスクリーンショットをひとつのフォルダにまとめようとし、 撮影した全てのファイルをそのフォルダに移動しました。 そして確認のためフォルダを開くと全てのプレビューが表示されなくなりました。 画像ファイル自体はあるものの画像を見ることができなくなってしまったのです。 その後父親と色々試行錯誤した結果、削除はできるものの移動、コピーなどといったことができなくなってしまいました。 ↓エラーの内容↓ 「(ファイル名) をコピーできません。アクセスできません。ディスクがいっぱいでないか、書き込み禁止になっていないか、またはファイルが使用中でないか確認してください。」 移動をする前に再起動して(全部のアプリケーションを終了するため)からやったのですが、同じエラーが何度もでてしまいます。他に名前の変更などもできないみたいです。 結構撮影するのに時間かかったりしてたので復元できないと困るのですが、どうすればよいのでしょうか? 復元することはできないのでしょうか。 これと同じ内容の質問やエラーなどを 自力では見つけられなかった故ここで質問させていただきました。 最後にスクリーンショット以外で、画像ファイルをネットから保存し、その後別フォルダに移動した結果同じような状況になってしまいました。 察するに画像ファイルを保存→移動をしてしまうと見れなくなってしまうようです。 お力添えをお願い申し上げますm(_ _)m

  • ネットワークドライブ上のVBScript

    ネットワークドライブ上のVBScriptsをタスクスケジューラーで実行すると失敗します ソース:TaskScheduler イベントID:103 パスが見つからないと言うようなエラーのようです。 単純に、”OK”とファイルに書き込むだけのものでもNGでした。 ためしに、バッチファイルを実行しても同じようになりました。 そのVBScriptやバッチファイルをローカルに持ってきてタスクスケジューラーで 実行した場合には問題なく実行されます。 Googoleで検索すると似たような現象を見かけるのですが、解決策はみつかりませんでした。 こちらは制限なのでしょうか。 解決策をご存じの方、アドバイスをお願いします。

  • サブフォルダ内のファイルを全部移動させたい。

    VBScriptのバッチでの作成を考えています。 あるフォルダ(名をFolderとします)の中に、たくさんのサブフォルダが あって、そこにあるファイルをすべてFolderに移動させたいと 思っています。 (ファイルはjpg画像ファイルだけです。) たとえば、Folderの下に、Folder_Bというサブフォルダがあって、 更にその下にFolder_Cがあり、その中には1.jpgというファイルが あったとしたら、バッチ実行後、Folderの直下に1.jpgがあり、 (可能であれば)フォルダはすべて消えているという具合です。 ファイルの移動自体はファイルシステムオブジェクトのFile.Moveで行い、 最後にディレクトリを列挙して削除していけばいいんだろうなという ところはわかります。 しかし、フォルダをサブフォルダも含めてすべて舐めて、そこから ファイルを移動していくというロジックに悩んでいます。 アドバイスいただけないでしょうか。

専門家に質問してみよう