Der Grund für das% -artifact nicht war in der BAT-Datei nicht funktionierte, dass das Token nie gesehen und ersetzt wurde. Genau wie in einem UNIX-Shell-Skript werden $ -substitutions ausgeführt, wenn diese Zeilen gesammelt und in Token umgewandelt werden. Da die Zeile, die die Datei% enthält, in FTP eingegeben wurde, wurde sie von FTP und nicht von der DOS-Shell gesammelt und analysiert.
In UNIX können Sie dieses Problem lösen, indem Sie die Anweisungen über FTP leiten. Das heißt, während diese (wobei $ 1 a Dateiname Parameter in der Befehlszeile geliefert wird):
ftp << FTP_CMDS
user joe
pass joesPassword
get $1
quit
FTP_CMDS
würde nicht funktionieren, THIS:
(echo user joe;
echo pass joesPassword;
echo get $1;
echo quit) | ftp
funktionieren würde.