jperl on Windows 8 Pro(64bit)

534 views
Skip to first unread message

jscripter

unread,
Nov 24, 2012, 9:43:40 PM11/24/12
to tsnet_...@googlegroups.com
jperlがWindows 8上で動くのかどうかインストールしてみました。

APi522e.exeそのものは実行できないので、XPにインストールした状態のPerlフォルダをコピーして、

C:\Perl\bin
C:\Perl\bin\MSWin32-x86-object

にパスを通しました。

XPでは、C:\Windows\System32にコピーされているperlCRT.dllをWindows 8の同じ場所にコピーしました。しかし、これでは動きません。perlCRT.dllがないと言われてしまいます。それで、他のdllが存在するC:\Perl\binにコピーするとテキスト処理のプログラムは動作するようになりました。

が、下記スクリプトを実行すると見掛け上問題なく動作するのですが、指定のファイルがFTPされていないのです。

何かお気づきの点があればお教えください。

-----^
use strict;
use Net::FTP;
my $ftpsite = 'your.ftp.site';# your.ftp.siteにftpサイト名を記載してください。
my $home = '/yourdir';# ディレクトリを指定してください。
my $ftp = Net::FTP->new($ftpsite);
print "${ftpsite}に接続しました。\n";
$ftp->pasv();
$ftp->login('ftpaccount','ftppassword');# ftpのアカウントとパスワードを記載してください。
print "loginしました。\n";
$ftp->cwd($home);
print "${home}ディレクトリに移動しました。\n";
$ftp->ascii();
print "asciiモードにします。\n";
$ftp->put($ARGV[0]) or die "put failed ", $ftp->message;
print "$ARGV[0]を転送しました。\n";
$ftp->quit();
print "FTPを終了しました。\n";
sleep(5);
-----$

Zazel

unread,
Nov 25, 2012, 7:33:47 AM11/25/12
to tsnet_...@googlegroups.com
Zazelです。

(2012/11/25 11:43), jscripter wrote:
> が、下記スクリプトを実行すると見掛け上問題なく動作するのですが、指定のファイルがFTPされていないのです。
>
> 何かお気づきの点があればお教えください。

コマンドのやりとりを表示してみるとか。
$ftp = Net::FTP->new("some.host.name", Debug => 1);

jscripter

unread,
Nov 25, 2012, 8:19:30 AM11/25/12
to tsnet_...@googlegroups.com
ありがとうございます。うまく進んでいるはずですよね^^;)おかしいですね。

-----^
c:\Program Files (x86)\TeraPad>jperl ftp2site.pl c:\xxxxx\tsnetwork\renewal.html


Net::FTP: Net::FTP(2.33)
Net::FTP: Exporter
Net::FTP: Net::Cmd(2.11)
Net::FTP: IO::Socket::INET
Net::FTP: IO::Socket(1.1603)
Net::FTP: IO::Handle(1.1505)

Net::FTP=GLOB(0x21178cc)<<< 220 your FTP Server (Version 1.0) ready.
your.ftp.comに接続しました。
Net::FTP=GLOB(0x21178cc)>>> PASV
Net::FTP=GLOB(0x21178cc)<<< 530 Please login with USER and PASS
Net::FTP=GLOB(0x21178cc)>>> user ftpaccount
Net::FTP=GLOB(0x21178cc)<<< 331 Password required for ftpaccount
Net::FTP=GLOB(0x21178cc)>>> PASS ....
Net::FTP=GLOB(0x21178cc)<<< 230 User ftpaccount logged in
loginしました。
Net::FTP=GLOB(0x21178cc)>>> CWD /yourdirectory
Net::FTP=GLOB(0x21178cc)<<< 250 CWD command successful
/yourdirectoryディレクトリに移動しました。
Net::FTP=GLOB(0x21178cc)>>> TYPE A
Net::FTP=GLOB(0x21178cc)<<< 200 Type set to A
asciiモードにします。
Net::FTP=GLOB(0x21178cc)>>> PORT xxx,xxx,x,x,xxx,xxx
Net::FTP=GLOB(0x21178cc)<<< 200 PORT command successful
Net::FTP=GLOB(0x21178cc)>>> STOR c:\xxxxx\tsnetwork\renewal.html
Net::FTP=GLOB(0x21178cc)<<< 150 Opening ASCII mode data connection for
c:\xxxxx\tsnetwork\renewal.html
Net::FTP=GLOB(0x21178cc)<<< 226 Transfer complete
c:\sites\tsnetwork\renewal.htmlを転送しました。
Net::FTP=GLOB(0x21178cc)>>> QUIT
Net::FTP=GLOB(0x21178cc)<<< 221 Goodbye.
FTPを終了しました。
-----$

2012年11月25日 21:33 Zazel <zaz...@gmail.com>:

Zazel

unread,
Nov 25, 2012, 9:27:34 AM11/25/12
to tsnet_...@googlegroups.com
Zazelです。

(2012/11/25 22:19), jscripter wrote:
> Net::FTP=GLOB(0x21178cc)<<< 220 your FTP Server (Version 1.0) ready.
> your.ftp.comに接続しました。
> Net::FTP=GLOB(0x21178cc)>>> PASV
> Net::FTP=GLOB(0x21178cc)<<< 530 Please login with USER and PASS

パッシブモードへの移行に失敗していますが、問題ないですか?

jscripter

unread,
Nov 25, 2012, 10:26:44 AM11/25/12
to tsnet_...@googlegroups.com
問題でした。見逃していました。Net::FTPの新しいバージョンを持つ64ビットのPerlで試しました。PASVは最初は失敗しますが、あとでもう一度試みて成功します。まあ、XPでは前のjperlのプログラムで成功していたのですが・・・

ありがとうございました。おかげさまで、この検討の過程で、TeraPadのエディタ編集保存時のアクセス許可の問題が明らかになりました。さて、さて、どんな環境にしたら便利なんだろう・・・

----^
C:\Users\jscripter\Documents>perl ftp2site_en.pl c:\xxxxx\tsnetwork\renewal.html
Net::FTP>>> Net::FTP(2.77)
Net::FTP>>> Exporter(5.66)
Net::FTP>>> Net::Cmd(2.29)
Net::FTP>>> IO::Socket::INET(1.33)
Net::FTP>>> IO::Socket(1.34)
Net::FTP>>> IO::Handle(1.33)
Net::FTP=GLOB(0x2218910)<<< 220 your.ftp.com FTP Server (Version 1.0) ready.
Connected to your.ftp.com
Net::FTP=GLOB(0x2218910)>>> PASV
Net::FTP=GLOB(0x2218910)<<< 530 Please login with USER and PASS
Net::FTP=GLOB(0x2218910)>>> USER ftpaccount
Net::FTP=GLOB(0x2218910)<<< 331 Password required for ftpaccount
Net::FTP=GLOB(0x2218910)>>> PASS ....
Net::FTP=GLOB(0x2218910)<<< 230 User ftpaccount logged in
Logged in...
Net::FTP=GLOB(0x2218910)>>> CWD /yourdirectory
Net::FTP=GLOB(0x2218910)<<< 250 CWD command successful
Moved to /yourdirectory directory...
Net::FTP=GLOB(0x2218910)>>> TYPE A
Net::FTP=GLOB(0x2218910)<<< 200 Type set to A
Ascii mode...
Net::FTP=GLOB(0x2218910)>>> ALLO 72772
Net::FTP=GLOB(0x2218910)<<< 202 No storage allocation necessary
Net::FTP=GLOB(0x2218910)>>> PASV
Net::FTP=GLOB(0x2218910)<<< 227 Entering Passive Mode (202,248,88,177,195,244)
Net::FTP=GLOB(0x2218910)>>> STOR renewal.html
Net::FTP=GLOB(0x2218910)<<< 150 Opening ASCII mode data connection for renewal.h
tml
Net::FTP=GLOB(0x2218910)<<< 226 Transfer complete
Transfer c:\xxxxx\tsnetwork\renewal.html
Net::FTP=GLOB(0x2218910)>>> QUIT
Net::FTP=GLOB(0x2218910)<<< 221 Goodbye.
Quit
-----$

2012/11/25 Zazel <zaz...@gmail.com>:

Zazel

unread,
Nov 25, 2012, 4:42:49 PM11/25/12
to tsnet_...@googlegroups.com
Zazelです。

(2012/11/26 0:26), jscripter wrote:
> PASVは最初は失敗しますが、あとでもう一度試みて成功します。まあ、XPでは前のjperlのプログラムで成功していたのですが・・・

pasv()を明示的に行うならば、ログインのあとに行わなければなりません。
よりスマートなのは、new()のオプションで渡すことです。
通常はNet::Configで適切に設定されるので、気にする必要はないはずです。

davi

unread,
Nov 25, 2012, 9:03:38 AM11/25/12
to tsnet_...@googlegroups.com
jscripterさん < こん??は でび です

On Sat, 24 Nov 2012 18:43:40 -0800 (PST)
"jscripter" <jscri...@gmail.com> wrote:

> が、下記スクリプトを実行すると見掛け上問題なく動作するのですが、指定のファイルがFTPされていないのです。

> jperlがWindows 8上で動くのかどうかインストールしてみました。
>
> APi522e.exeそのものは実行できないので、XPにインストールした状態のPerlフォルダをコピーして、

ここでwin7の管理者権限でインストーラを動かして入った
ファイル群が、win7の配下でコピーされたわけですよね。

で、それをWin8へのログオンで、Win8側に複製した、と。

そうすると、各ファイル全部に、Windows 8側のアクセス権限が
ついていないんじゃ?

でび http://davi.txt-nifty.com/1984/

jscripter

unread,
Nov 27, 2012, 7:40:39 AM11/27/12
to tsnet_...@googlegroups.com
でびさん。

コメントありがとうございます。投稿が保留状態になっていました。すみません。

「管理者として実行」することが大切なんですかね。それがよくわからないことに、スクリプトを直してから、Zedの中から起動した場合だけFTPが成功し、TeraPadとコマンドラインでは見掛け上成功したように見えるが、実際に送られていない^^;)TeraPadを管理者として再インストールしても結局ダメなんですね。

2012年11月25日日曜日 23時03分38秒 UTC+9 davi:
Reply all
Reply to author
Forward
0 new messages