通过Batch上传png会破坏图像

时间:2018-04-26 13:24:38

标签: windows batch-file

我尝试使用批处理文件上传png文件:

@ECHO OFF
echo user MYUSERNAME>> ftpcmd.dat
echo MYPASSWORD>> ftpcmd.dat
echo put C:\1234.png>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat my-ftp-server.com
del ftpcmd.dat
goto Ende
:Ende
pause

上传有效,但png文件始终已损坏。

我该怎么办?

谢谢和问候 的Thorsten

1 个答案:

答案 0 :(得分:4)

ftp put的默认模式是 ASCII ,因此文件将在第一个x 1a(^ Z)字符处终止(自CP / M以来使用的古代EOF) )

put命令之前,添加一个额外的行

echo binary>> ftpcmd.dat

切换到二进制模式。

使用起来可能更容易

@ECHO OFF
(
echo user MYUSERNAME
echo MYPASSWORD
echo binary
echo put C:\1234.png
echo quit
)>ftpcmd.dat
ftp -n -s:ftpcmd.dat my-ftp-server.com
del ftpcmd.dat
pause

将收集括号内echo es的输出并将其输出到新文件ftpcmd.dat) (single>` - 创建新文件;双重追加或创造)