最終的にはサーバ上の所定のフォルダ(\\servername\d\test\sample.xls)から
操作している端末(\\端末名\d\test)へとコピーするようにしようとしていますが
とりあえず下記のように単純な例から動作確認を行っています。
ですがどうしても「指定されたファイルが見つかりません」のエラーが出てしまいます。
下記のpath0(コピー元)とpath1(コピー先)の書き方をいろいろ変えて
(例えばサーバフルパスからサーバフルパスへコピーとか、
端末名含むフルパスから端末名含むフルパスへコピーとか
ドライブ名から始めるとか)
それに合わせてファイルやフォルダを配置してテストしてみてますが、
すべて「指定されたファイルが見つかりません」となります。
何かパス指定に問題があるのでしょうか。ご教示願います。
path0 = "\\端末名\d\test0\sample.xls"
path1 = "\\端末名\d\test1"
Set objWS = CreateObject("WScript.Shell")
cmd = "copy " & path0 & " " & path1
msgbox cmd '確認用
objWS.run(cmd)
ローカルのファイルを扱う場合はid:TransFreeBSDさんの方法で問題ないと思いますが、コマンドプロンプトは基本的に"\\端末名\d\test"書式のパスをサポートしていないためネットワーク上のファイルコピーには向いていません。
特にcopyコマンドにこだわる理由がないのであれば、FileSystemObjectを利用するとよいかと思います。
<html> <head> <script language="VBScript"> <!-- path0 = "\\端末名\d\test0\sample.xls" path1 = "\\端末名\d\test1" Sub RunCopy() Set fso = CreateObject("Scripting.FileSystemObject") Call fso.CopyFile(path0, path1, True) MsgBox "success." End Sub --> </script> </head> <body> <input type="button" value="copy" onclick="RunCopy()"> </body> </html>
そのパスが 有効じゃないということでしょう。
パスを ローカル内だけで 設定して 実行できるか確認してみたらいいですね。
というか ブラウザから実行じゃなく、単独に実行させても ダメなんですか?
ためしにローカルにvbsファイルを作って、上記を記述し、
path0="d:\test1\sample.xls"
path1="d:\test2"
などとして実行しても「指定されたファイルが見つかりません」となります。
自分でも「間違っているとしたらパスの指定方法くらいだろうな」と思い、いろいろ試しつつ考えられる可能性をつぶし、それでもわからなかったので質問させていただいております。
もしパス指定が間違ってないとして、例えばAdministrator権限の問題とかもあるのでしょうか。
copyコマンドはcmd.exeの内部コマンドのため直接実行できません。
cmd = "cmd /C copy " & path0 & " " & path1
このようにcmd.exeから実行してください。
このとき/Cスイッチでなく/Kスイッチを用いるとコマンドプロンプトが閉じませんのでデバッグに便利です。
ローカルのファイルを扱う場合はid:TransFreeBSDさんの方法で問題ないと思いますが、コマンドプロンプトは基本的に"\\端末名\d\test"書式のパスをサポートしていないためネットワーク上のファイルコピーには向いていません。
特にcopyコマンドにこだわる理由がないのであれば、FileSystemObjectを利用するとよいかと思います。
<html> <head> <script language="VBScript"> <!-- path0 = "\\端末名\d\test0\sample.xls" path1 = "\\端末名\d\test1" Sub RunCopy() Set fso = CreateObject("Scripting.FileSystemObject") Call fso.CopyFile(path0, path1, True) MsgBox "success." End Sub --> </script> </head> <body> <input type="button" value="copy" onclick="RunCopy()"> </body> </html>
もしかしたらサーバー内の実行をしてるのかなーー?
2013/01/22 18:19:47