Board logo

标题: [文件操作] 批处理向FTP上传文件时如何处理带特殊字符的文件名?(已解决) [打印本页]

作者: jiulong    时间: 2011-7-3 21:55     标题: 批处理向FTP上传文件时如何处理带特殊字符的文件名?(已解决)

本帖最后由 jiulong 于 2011-7-14 21:46 编辑
  1. put "c:\program files\abc&xyz\xx.txt"
复制代码
这条命令错在连接符[&],哪位高手帮帮忙


我了个擦,这样描术还看不懂,
  1. set ftpFile=TempFTP.txt
  2. >"%ftpFile%" (
  3.     echo,ftpUser
  4.     echo,ftpPass
  5.     echo cd 日志1
  6.     echo bin
  7.     echo put "c:\progra~1\abc&ho\xx.txt"  \\就是这行会出错,因为有“&”符号,而下面的上传是不会出错的。就是要解决如果上传目录或文件名带“&”符号的,又不能把目录改名,不能改名啊,一定不能改目录名啊,我说过了不可以改目录名的,我真的说过了。我靠,还是会有人回答目录改名,怎么得了哦!
  8. REM 没办法,因为有些人回答问题连提问内容都没看明白,瞎回答或瞎引导,看到非常让人反感,可能是万恶的百度提问让我有这心里作用吧,看到就怕啊.
  9.     echo cd ..
  10.     echo cd 日志2
  11.     echo put "d:\yy\xx.txt"
  12.     echo bye
  13. )
  14. ftp -s:%ftpFile% 192.168.100.1
复制代码

作者: batman    时间: 2011-7-4 15:03

求问题清楚描述。。。
作者: Hello123World    时间: 2011-7-5 14:20

  1. put "c:\program files\abc&xyz\xx.txt"
复制代码
""有转义的作用,&怎么会没转义?
作者: wolonga123    时间: 2011-7-14 08:34

我以前也遇到过类似的问题.显示完整路径时只显示了&前那一部分
作者: 523066680    时间: 2011-7-14 08:44

本帖最后由 523066680 于 2011-7-14 08:49 编辑

命令行解释的时候变成分句了呗。
莫非ftp读取的时候又分了一次……

C:\>echo a&b
a
'b' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\>echo a^&b
a&b

C:\>
作者: ArdentMan    时间: 2011-7-14 08:47

“我了个擦,这样描术还看不懂,”
“我靠,还是会有人回答目录改名,怎么得了哦!”
楼主知道尊重人?
作者: 523066680    时间: 2011-7-14 08:50

本帖最后由 523066680 于 2011-7-14 09:06 编辑

6# ArdentMan
有个人不知道一个知识,
另一个人刚好知道这个东西,但是不知道他在问什么。
然后这个人发火了……

我测试
a.txt:
open 地址
名称
密码
cd httpdocs
put fdsa&a\a.txt

然后ftp -s:a.txt ,提示成功……
ftp> cd httpdocs
250 CWD command successful
ftp> put "fdsa&a\a.txt"
200 PORT command successful
150 Opening BINARY mode data connection for a.txt
226 Transfer complete
ftp: 发送 4 字节,用时 0.00Seconds 4000.00Kbytes/sec.
ftp>

作者: 523066680    时间: 2011-7-14 09:09

话说,话说楼主code中(整段代码的那个,不是单独一行的code)的这一行,
#     echo put "c\progra~1\abc&ho\xx.txt"  \\就是这行会出错,因为有“&”符号,而下面的
C盘的两个冒号哪去了?
作者: jiulong    时间: 2011-7-14 19:28

6# ArdentMan
你信不信,随便你去哪个论坛或百度问等,去提个问,要么一大堆复制的提问看得头疼,最多的是那种连问题都看不明白瞎回答的,我发现这样做了效果还蛮好,竟然真的没人要我修改目录名了,不信你可以再发个贴,保证200%的有人要你改目录名
作者: jiulong    时间: 2011-7-14 19:29

7# 523066680


貌似看到了“for a.txt”,看来Ftp 里以“&”为文件名的分隔符,试试把路径写成""路^&径\a.txt""
else 发表于 2011-7-14 09:11

试过了,无效,如果是纯批处理是可以的,但这是FTP命令就不行了
作者: batman    时间: 2011-7-14 19:44

************************************************************

  对不起,本贴因为标题含有挑衅字符而触犯版规!请
楼主在仔细阅读论坛发贴规则后主动修改好标题。同时本贴将暂时禁
止回复,对于因此而给楼主带来的不便我们深表歉意,但也请楼主自
觉遵守和维护论坛秩序,谢谢!

请阅读论坛发贴规则:http://www.bathome.net/thread-963-1-1.html

提示:
        请大家在楼主修改标题并得到管理层认可之前不要给出任何有意义的回复。
        否则一律视为无视论坛纪律扣2分!(管理层和技术组扣4分)
        论坛是大家的,也要靠大家来维护。。。


************************************************************
作者: Demon    时间: 2011-7-14 19:52

“高手出来”,您还真是大牌啊。
作者: jiulong    时间: 2011-7-14 21:40

我自己搞定了,不能做变量,只能直接添加,搞是搞定了,就是没变量就不完美了




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2