3

Windowsからz/OS(別名MVSまたはOS / 390)へのソースファイルのアップロードを自動化するためのperlスクリプト(以下)を作成しようとしています。put()メソッドは、z / OS上のリモートデータセット(ファイル)名の前に、ログオンしたユーザーID( "JCARTER")を付けているようです。アップロードしたいリモートデータセット名は「FSI.V121P01.INSTALL」で、Partitioned Data Set(PDS)です。この宛先データセット名のプレフィックスに「JCARTER」を付けると、データセットが見つからず、put()が失敗します。宛先ファイル名を引用するさまざまな方法を試しましたが、ファイル名の前にユーザーIDが追加されています。また、quote('SITE'、'QUOTESOVERRIDE')とquote('SITE'、'DATASETMODE')を使用して、cwd()を使用してcwdを設定しようとしましたが、それでも成功しません。

スクリプトは次のとおりです。

use strict;
use Net::FTP;

my $HostIP="xxx.xxx.xxx.xxx";
my $ftp;

$ftp = Net::FTP -> new ($HostIP) or die "Cannot connect to zOS: $@";
$ftp->login("userid","pw") or die "Cannot login.", $ftp->message;
$ftp->ascii();

#$ftp->cwd();
#$ftp->quot('SITE', 'QUO');
#$ftp->quot('SITE', 'DATAS');
print $ftp->message;
$ftp->pwd();
print $ftp->message;
$ftp->put('J:\REL122\RPS100\A2WBLIB\C\a2wversn.c', 'FSI.V121P01.INSTALL(A2WVERSN)');
print $ftp->message;
$ftp->quit;

上記のプログラムを実行すると、以下のメッセージが表示されます。

表現タイプはAsciiNonPrintです。「'JCARTER。'」は作業ディレクトリです。JCARTER.FSI.V121P01.INSTALL(A2WVERSN)は、存在しないパーティションデータセットを要求します。MKDコマンドを使用して作成します。

cwd( "")を追加して、現在の作業ディレクトリを削除しようとすると、次のようになります。

表現タイプはAsciiNonPrintです。「'JCARTER。'」は作業ディレクトリです。「/」はHFS作業ディレクトリです。データ・セット/FSI.V121P01.INSTALL(A2WVERSN)の保管/FSI.V121P01.INSTALL(A2WVERSN)のオープンに失敗しました。

私はかなり近いようです。助言がありますか ?ありがとう-ジョン

4

1 に答える 1

1

FTP経由で接続すると、ユーザー名ごとに「JCARTER」という名前のデータセットがドロップされるようです。

cdup()を試して、JCARTERという名前のデータセットから抜け出しましたか?次に、FSI.V121P01.INSTALL PDSにcwd()を実行できる場合があります。

それでも問題が解決しない場合は、接続を確立し、dir()を実行して、Net::FTPが返すものを確認することをお勧めします。それは物事をより論理的にナビゲート可能にするかもしれません。

于 2012-12-11T19:56:05.557 に答える