【问题标题】:Send a file using %userprofile% to a ftp using batch command [duplicate]使用批处理命令将使用 %userprofile% 的文件发送到 ftp [重复]
【发布时间】:2018-11-26 05:05:02
【问题描述】:

只需让我的脚本将文件发送到.ftp 文件夹,它运行良好,如下所示:

@echo off & SetLocal
( echo open ftp.xxxxx.com.it
echo username
echo password
echo put %userprofile%\Desktop\%date:/=-%.zip
echo bye 
)> %temp%\ftpsend.dat
ftp -s:%temp%/ftpsend.dat
del /f /s /q %temp%\ftpsend.dat
pause

但使用%userprofile% 无法设置用户。我的电脑用户名是!Karen Dallalibera! 可能是因为用户名中的!....但没有DelayExpansion,所以我不知道。

我想使用%userprofile%%homepath%等。

有办法使用吗?


知道了,使用"。但是还有一个问题:我想将文件上传到一个特定的文件夹中,我尝试如下:

    @echo off & SetLocal
    ( echo open ftp.xxxxx.com.it
    echo username
    echo password
    cd \Karen D.\Test\
    echo put "%userprofile%\Desktop\%date:/=-%.zip"
    echo bye 
    )> %temp%\ftpsend.dat
    ftp -s:%temp%/ftpsend.dat
    del /f /s /q %temp%\ftpsend.dat
    pause

我想将文件上传到文件夹\Karen D.\Test\ 但是脚本保存在ftp 的主文件夹中。 如何设置上传的具体文件夹?

【问题讨论】:

  • 您的第一行是否应该是:echo OPEN ftp://ftp.xxxxxx.com.it/ > ftpcommands.txt,以便将文件创建为新文件,而不是附加到现有文件?
  • “什么都没有发生”是不可能的。 cmdftp 是否会生成错误消息?文件创建了吗?
  • 您在什么操作系统上运行?是否安装了 FTP 命令?
  • 它说主机未知(但正确,已检查),我使用 Windows 7。
  • 检查我上次的编辑!

标签: batch-file ftp


【解决方案1】:

不要在文字用户/密码前面加上任何东西

( echo OPEN ftp.xxxxxx.com.it/
  echo username
  echo password
  echo put %userprofile%\Desktop\%date:/=-%.zip
  echo quit
) >ftpcommands.txt
FTP -s:ftpcommands.txt

【讨论】:

  • 它说主机ftp://ftp.xxxxxx.com.it/是未知的......但是是正确的。已经查过了
  • 尝试不使用协议ftp:// 否则检查url/用户名密码
  • 试过了,但还是说主机未知。不过我都查过了,没错。
  • 我建议您在没有脚本的情况下手动进行连接并根据要求输入数据,您是否收到编号消息(220/200/331)?
  • 我可以手动打开,正常打开。我没有收到任何消息。太奇怪了……
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-30
  • 2011-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-30
  • 1970-01-01
相关资源
最近更新 更多