0

ftp セッション中にリモート ホストからローカル マシンに多数のファイルをコピーしています。ファイルをローカル ディレクトリ ツリーに保存する必要があります。私の問題は、セッションの前に特定のディレクトリが存在しない可能性があることです。私が過去にこれを処理した方法は、最初にディレクトリツリーを作成し、ディレクトリが存在するかどうかさえ気にせず、次に同じバッチファイル内から(私はPythonを使用してバッチファイルを作成します)スクリプトをセットアップすることです。セッションを開始し、lcd を使用して正しいディレクトリに移動します

md c:\123
md c:\234
md c:\234\2009
loginname
password
cd remotedirectory
lcd c:\123
get somefile.txt

したがって、上記のすべてが 1 つのバッチ ファイルに書き出され、実行を開始します。ディレクトリを作成しようとしたときにディレクトリが存在する場合、端末ウィンドウにディレクトリが存在するというメッセージが表示され、何も悪いことが起こらないので心配していません。

私が本当にやりたいのは、そのディレクトリに移動する準備ができたときにローカルディレクトリの存在を確認することです。存在しない場合は作成されますが、セッションを閉じて再起動せずにこれを行う方法がわかりませんでしただから私はシェルに戻ります。

ホストとの接続を維持しながら、ftp セッション中にこれを行う方法はありますか?

4

1 に答える 1

1

ローカル ディレクトリが既に存在することを確認するために、!コマンド プレフィックスを使用して CMD コマンドを実行できます。MD例えば:

! md "c:\my data\download"まだ存在しない場合はディレクトリを作成c:\data\downloadします(必要な権限があると仮定します)。既に存在する場合は、無害なエラーが表示されます。! md "c:\my data\download" > nulを使用してエラー メッセージを省略することもできます。または、他のコマンドを実行します。

基本的に、ftp コマンド プレフィックスの後のすべてがas!に渡されます。を単独で使用すると、CMD セッション プロンプトにエスケープし、ユーザーの入力を待ちます。CMD のコマンドは CMD セッションを閉じ、FTP プロンプトに戻ります。CMD.EXEcmd /c {your command(s)}!EXIT

于 2012-10-06T19:33:20.617 に答える