HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
1013
e3880「fxcopy」のコピー元に「ドライブ名」の指定は出来ない?4解決


e3880

リンク

2007/10/13(Sat) 06:42:21|NO.11603

「fxcopy」を使っているのですが、ファイルのコピー元の変数にドライブ名を
含める事は出来ないのでしょうか?
コピー元を「A:\\abcd.efg」の様にすると、ファイル名が「A:」になってしまいます。

コピー元に「chdir」してから実行すれば良いのでしょうが、
コピー先のフォルダー指定が長いので、コピー先に「chdir」してから
「fxcopy」を実行しています。

コピー先のフォルダー指定を長いまま実行すると
----------------------------------------------------------------------
Hot Soup Processor ver.3.1:hsp3.exe アプリケーションエラー

"0x7c950e03" の命令が "0x3134375f" のメモリを参照しました。
メモリが "written" になることはできませんでした。
----------------------------------------------------------------------
上記のエラー表示が出てしまいます。

「fxcopy」の「仕様」なのでどうしょうもないのでしょうか?

(「bcopy」は日付を勝手に変更されてしまうので使いたくありません・・・)

宜しくアドバイスをお願いいたします。



この記事に返信する


Drip

リンク

2007/10/13(Sat) 07:29:58|NO.11605

Dripです。

 e3880さん、こんにちは。
こちらでは以下のスクリプトで正しくコピーできますが、いかがでしょうか?

#include "hspext.as" a="test.bin" fxcopy a,"E:\\tmp" ; "test.bin"をE:\tmpにコピー mes stat
 ところで、マニュアルにfxcopyで移動をする場合は、同じディレクトリでないといけないと
書いてありますが、私の環境ではなぜか上記のスクリプトで移動オプションを設定したら、
正常に移動ができてしまいました。
ひょっとしたらOSや環境に依存するものがあるのかもしれません。
 それと基本的なこととして、Windowsの権限の設定や属性の設定は大丈夫でしょうか?
OS自体でコピー先ないしコピー元に、アクセス制限が加えられていた場合は、ファイル操作に
失敗してしまいます。



e3880

リンク

2007/10/13(Sat) 07:48:35|NO.11606

「Drip」さん、早速のアドバイス、有り難うございます。

ご指示のように、指定するパス名の文字が短いときにはコピー/移動、共に問題なく
実行できています。

今回、コピー先のフォルダー指定が以上に長いので、エラーが出てしまいました。

今、事前に
コピー先の長いフォルダー名の一つ前に「chdir "c:\\abc\\def\\・・・・・」して、
次に「chdir "a:\\"」してから実行すると良い様です。

chdir "c:\\abc\\def\\・・・・・"
chdir "a:\\"
File_1 = "abcd.efg
File_2 = "c:xyz.qfp"
fxcopy File_1 , File_2 , 0

でエラーもなくうまく行きました。

どうもアドバイス有り難うございました。



Drip

リンク

2007/10/13(Sat) 08:38:43|NO.11607

Dripです。

 パス長が問題だったのですか?
本文にはパス長についてはあまり問題視されておらず、
タイトルはドライブ越しのコピーが出来ないということだったので
その点についてお答えしたのですが‥

 fxcopyがどうも怪しい動作をするようでしたら、WindowsAPIを使用して
普通のファイルコピーをした方が安全かもしれませんね。



e3880

リンク

2007/10/13(Sat) 10:28:04|NO.11608

e3880 です。

再度のご指摘有り難うございます。

説明不足で申し訳ありませんでした。

「WindowsAPI」が使用できるのですか?
最近始めたばかりでまだ詳しいことが解りません。

「WindowsAPI」を使用したサンプルがあると助かるのですが・・・
マニュアル/ヘルプを探してみます。



ONION software Copyright 1997-2023(c) All rights reserved.