Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 批处理FTP mget命令不使用通配符?_Windows_Batch File - Fatal编程技术网

Windows 批处理FTP mget命令不使用通配符?

Windows 批处理FTP mget命令不使用通配符?,windows,batch-file,Windows,Batch File,我编写了一个批处理脚本,它登录到我的ftp服务器,然后导航到一个目录。我在使用mget命令时遇到问题,我希望它下载目录中的每个.dat文件,但它只是返回以下错误: Cannot access file '/home/minecraft/multicraft/servers/server267/world/players/*.dat':No such file or directory. 200 Type set to: ANSI Cannot find list of remote files

我编写了一个批处理脚本,它登录到我的ftp服务器,然后导航到一个目录。我在使用mget命令时遇到问题,我希望它下载目录中的每个.dat文件,但它只是返回以下错误:

Cannot access file '/home/minecraft/multicraft/servers/server267/world/players/*.dat':No such file or directory.
200 Type set to: ANSI
Cannot find list of remote files
这是我的脚本(从cmd运行)


使用ftp执行脚本文件时,必须关闭全局绑定,这将允许在脚本中使用通配符。例如:

ftp -n -i -s:scriptfile.txt 
应该有效,但是

ftp -n -i -g -s:scriptfile.txt

不会。

我会确保glob处于打开状态,当关闭时,put和get命令中的文件名会被逐字读取,并且不会查看通配符

更多信息:

全局:切换mdelete、mget和mput的文件名扩展。如果全球化 如果使用glob将其关闭,则文件名参数将按字面意思获取 而且没有扩大。mput的全球化操作与csh相同。对于mdelete和 mget,每个远程文件名在远程计算机上分别展开 机器和列表不会合并。目录名的扩展不可用 可能不同于普通文件名称的扩展: 确切的结果取决于国外的操作系统和ftp 服务器,并可以通过执行“mls远程文件-”进行预览注意:mget 和mput并不意味着传输文件的整个目录子树。 这可以通过传输子树的tar存档(在 二进制模式)


一旦进入ftp,尝试检查glob,如果关闭,则将其设置为打开。默认行为是打开的,当使用选项
-g
连接到ftp时,您可以从命令行关闭文件名globbing。

如果不允许或转发服务器入站连接,也可能是防火墙问题。发生在我身上。

我知道这很旧,但它可能会帮助别人。我在Windows FTP的MGET上遇到了同样的通配符问题,但这并不一致,因为它可以与一些远程系统通信,但不能与所有远程系统通信

我的脚本是这样做的:

cd /folder/folder
mget ./-400TA/folder/*_XYZ
在文件夹结构中,我有一组不同的文件夹,它们以连字符开头,出于任何原因,脚本CD位于其正上方,并使用MGET中的相对路径。我遇到了和你们中一些人报告的相同的问题,如果我以交互方式连接并逐个键入命令,它就会起作用。但在批量中,它没有

我在这篇文章和其他文章中遵循了这些建议,但没有任何乐趣。我目前无法访问远程系统来查看它们,以找出为什么有些系统工作,而有些系统不工作

然而,我发现的是这个。按如下方式更改我的脚本:

cd /folder/folder/-400TA/folder
mget *_XYZ

成功了。简单。在某个地方发生了一些奇怪的交互,可能是文件夹保护之类的,但这只是表明,尝试不同的东西最终可能会让你达到目的。

这是出于设计。FTP规范(RFC 3659)的最新更新明确禁止使用该规范(见第2.2.2节):


当您手动运行命令而不是从批处理文件运行命令时,它是否有效?您能在该目录中列出您的目标文件吗?与Rob的问题相同,您能
获取
任何一个.dat文件吗。如果您可以列出目录内容,并且可以
GET
任何一个文件,则可以动态构建脚本,以便对所有.dat文件使用
GET
。如果你也做不到,你在FTP服务器上没有适当的权限。我可以列出文件,也可以获取单个文件。它就是不喜欢*。我该如何做那个动态的事情呢?这并没有解决这个问题-他说mget即使在命令行中也不能工作,不能在脚本中工作。欢迎来到SO!这是一个不太可能的猜测——特别是因为提问者已经接受了不同的答案。因此,这不是一个讨论论坛——即使有时看起来是这样。我们试图严格按照问题的主题保留答案。这可能是对这个问题的评论(如果还没有公认的答案的话)。一旦你有了更多的声誉,你就可以在别人的帖子上发表评论了。在此之前,请专注于提出好的问题,并为问题提供有附加价值的好答案。请参阅帮助页面。干杯我有完全相同的错误,它是由防火墙引起的-这怎么不是一个答案?把一个问题的所有答案都放在一个问题下不是更有用吗?是的。如果他们回答了问题。我认为,这对特殊的问答是一个边缘案例。根据经验,如果已经有一个公认的答案,我会谨慎地添加答案。在这里,作者已经明确表示他可以获得单个文件。所以你的答案显然不是解决这个问题。我们可以说这个问题措词不当,或者评论可能应该是对这个问题的编辑。仅供参考,我也可以得到个人文件!我的意图是扩展这个主题,以便对其他有相同问题的人有用。如果这是中不需要的内容,因此我无法删除或将其转换为注释,我不知道防火墙规则如何允许我获取一个文件,但不能获取多个文件。我正在这样做,但我发现它只提取一个文件,而不是所有匹配的文件。
cd /folder/folder/-400TA/folder
mget *_XYZ
For the commands defined in this specification, all pathnames are to be treated literally. That is, for a pathname given as a parameter to a command, the file whose name is identical to the pathname given is implied. No characters from the pathname may be treated as special or "magic", thus no pattern matching (other than for exact equality) between the pathname given and the files present in the NVFS of the server-FTP is permitted.

Clients that desire some form of pattern matching functionality must obtain a listing of the relevant directory, or directories, and implement their own file name selection procedures.