
プログラム初心者です。宜しくお願いします。
職場で新PCを数十台導入したのでデータのお引越しをすることになりました。
主要なものはFASTWIZ.EXEを使用しますがNOTESデータの一部もデータ移管したいのです。
そこで以下のスクリプトを書いてみました。
------------------------------------
1 Dim objWshShell, objSF, FSO
2 Set objWshShell = CreateObject("WScript.Shell")
3 Set objSF = objWshShell.SpecialFolders
4 Set FSO = CreateObject("Scripting.FileSystemObject")
5 FSO.CopyFile "c:\notes\data\*.id", objSF.Item("MyDocuments")
6 FSO.CopyFile "c:\notes\data\desktop.dsk", objSF.Item("MyDocuments")
7 FSO.CopyFile "c:\winnt\notes.ini", objSF.Item("MyDocuments")
------------------------------------
ファイル名にアスタリスクを入れていないと書き込み出来ないとエラー(800A0046)が発生してしまいます。調べてみましたら権限が無いと発生するエラーだったのですが
例えば
7 FSO.CopyFile "c:\winnt\notes*.ini", objSF.Item("MyDocuments")
のようにファイル名の一部にアスタリスクを追加するとエラーが発生せず正常に実行されます。
?
アスタリスクを付ければ正常に動作するので良いんですが、何故なのか分からないと気持ちが悪くていけません。
調べてみたのですが分からず皆様のお知恵を拝借出来ないかと書き込ませて頂きました。
宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
CopyFile メソッドは、
コピー元に*が指定された場合コピー先をフォルダとして扱います。
また、コピー先フォルダが¥で終わっているときフォルダとしてあつかいます。
逆に言うと、*が指定されていない場合で、コピー先フォルダ名として¥で終わっていない場合、ファイルからファイルとしてコピーをするということです。
つまり、ファイル名が指定されたとしてコピーしようとするが、実際にはフォルダ名であるので、エラーになっているというようなことかと思います。
No.3
- 回答日時:
.Item("MyDocuments")
は、最後に¥をつけないので
なんだったら
objSF.Item("MyDocuments") & "\"
とすればいいと思います
*が指定されておらず且つコピー先フォルダが¥で終っていないからと言う理由だったんですね。上記方法で解決致しました。
ご回答ありがとうございます。
No.1
- 回答日時:
マイクロソフトのサイトに次のような報告がありました。
状況が分からないので、はずしていたらすみません。
この報告によると特別な環境がトリガーになっていますね。
そしてcreateobjectで発生するバグのようですね。
バグなので*のときは対象にならないということでしょうか?
いずれにしても相手先の権限とは無関係のようにみえますが・・・
その他にも同サイト内でそのエラー番号で検索すると15件ほどヒットしました。
一番関連がありそうなのがこの案件かと思った次第です。
参考URL:http://support.microsoft.com/default.aspx?scid=k …
回答ありがとうございます。
VSはインストールしておりません。
質問の書き方が悪かったようです。申し訳ありませんでした。いずれネットワークドライブに置いて各クライアントマシン上から実行して貰おうと思っていたのですが現段階では自分のマシン上でテストしております。ファイルやフォルダの権限は無関係です。
VSをインストールすることが合って同現象が発生したらhawkwindのご回答を参考にさせて頂きます。お世話になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パワーポイントに挿入したエク...
-
VB6のプロジェクトロードエラー...
-
C# ネットワークドライブのexe...
-
エクセルVBA 開いているブック...
-
80070052エラー
-
デバイスドライバの開発について
-
VBSのsendkeysで日本語を出力し...
-
ShellExecute でショートカット...
-
ネットワーク上のファイルのコピー
-
ファイルは既に開かれています(...
-
フォルダの中のファイルを任意...
-
win10で1つのフォルダ内に保存...
-
Excelのハイパーリンクのアドレ...
-
中身のファイルは残したままフ...
-
「たる」を漢字変換しようとし...
-
フォルダ・ファイルの順番を自...
-
デスクトップからだけ削除する...
-
フォルダーを解体するにはどう...
-
文字が薄くなります
-
HULFTとOWFTの違いに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワーポイントに挿入したエク...
-
VB6のプロジェクトロードエラー...
-
エクセルVBA 開いているブック...
-
パソコン起動時
-
バッチファイルでXCOPYコマンド...
-
ShellExecute でショートカット...
-
IISでローカル内からhttp://loc...
-
ファイルは既に開かれています(...
-
最近Texを利用し始めた大学生で...
-
中度論理障害のHDD復旧
-
スタックエラー?って何ですか
-
WORD2000を起動するとアプリケ...
-
ClickOnceで意味不明なエラー
-
Wininet.DLL使用時のプログラム...
-
VBSのsendkeysで日本語を出力し...
-
データベースアクセスエラー(...
-
C++言語エラー
-
FileSystemObject CopyFile ...
-
unity xcode
-
nero7での焼き方について
おすすめ情報