0

FTP コマンドを処理するバッチ ファイルを作成する場合、ftp/batch でパイプに問題がある場合、どのようにユーザー名を入力しますか。

注: ホストとユーザー名のドット/ピリオドは意図的なものです。

REM Connection information:
SET Server=my.server.com
SET UserName=my.server.com|my.username
SET Password=password


IF NOT EXIST "%TEMP%\FTPCommands" MD "%TEMP%\FTPCommands"
SET Commands="%TEMP%\FTPCommands\SendToFTP_commands.txt"


rem -- add username and password to commands file
ECHO %UserName%> %Commands%
ECHO %Password%>> %Commands%

FTP -d -i -s:%Commands% %Server%

エラー:

「'my.username' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されません。」

4

3 に答える 3

1

変数定義を二重引用符で囲み、パイプを^:でエスケープします。

set "UserName=my.server.com^|my.username"

二重引用符がないと、パイプを 2 回エスケープする必要があります。1 回は定義時、もう 1 回は変数のエコー時です。

set UserName=my.server.com^^^|my.username"

^^はエスケープ^され^|、エスケープ|されているため、変数をエコーするときにエスケープされたパイプがまだあります。

于 2013-07-10T15:46:47.730 に答える
0

^| を使用できます。| をエスケープする シンボル。

ansgar Dos によって指摘されたエスケープ文字を修正するために更新され、 | パイプ記号として、あるコマンドの出力を別のコマンドの入力としてパイプしようとします。したがって、あなたのエラー。パイプ記号があるため、バッチ ファイル インタープリターは my.server.com が 1 つのプログラムであると想定し、その出力を my.username にパイプしようとしています。

于 2013-07-10T15:37:11.077 に答える