【问题标题】:Prompt Windows - Script提示窗口 - 脚本
【发布时间】:2016-10-07 19:30:57
【问题描述】:

我有一个文件夹 (essa é nova pasta),其中包含多个 .txt 文件

C:\xml\UPLOAD\essa é nova pasta\35160101660296000130550020000540011858610314.txt

文件夹是一个带重音符号的名称 (essa é a nova pasta),并编写了一个脚本来生成所有 .txt 文件的列表,但看起来像这样:

C:\xml\UPLOAD\essa ‚ nova pasta\35160101660296000130550020000540011858610314.txt.

我需要创建一个 FTP 脚本来从 .txt 文件列表中进行放置。上面生成。我使用了 FOR 命令并得到了列表,但结果是这样的:

user
password
put "C:\xml\UPLOAD\essa ‚ nova pasta\35160101660296000130550020000540011858610314.txt" /content/UPLOAD/35160101660296000130550020000540011858610314.txt
bye

他给了一个信息,文件不存在,因为它不认识文件夹的名字(essa ‚ nova pasta

我需要将我的 FTP 脚本退出为文件夹名称“这是新文件夹”,即使用正确的名称并正确管理我的 FTP 脚本,如下所示:

user
password
put "C:\xml\UPLOAD\essa é nova pasta\ 35160101660296000130550020000540011858610314.txt" /content/UPLOAD/35160101660296000130550020000540011858610314.txt
bye

我该如何解决这个问题?

【问题讨论】:

  • FTP 和重音字符对于食谱来说不是一个好主意。
  • 您使用的是什么版本的 Windows?为什么生成文件列表,为什么不用mput *.txt

标签: windows cmd ftp


【解决方案1】:

如果您的所有文件都来自“C:\xml\UPLOAD\essa é nova pasta\”,那么您可以(一次,在顶部)运行

lcd "C:\xml\UPLOAD\essa é nova pasta\

这样您就不会在 for 循环中处理重音字符。

那么你的 put 语句将如下所示:

put 35160101660296000130550020000540011858610314.txt /content/UPLOAD/35160101660296000130550020000540011858610314.txt

如果您的所有文件都需要在远程目录/content/UPLOAD/ 中结束,那么您可以通过在 ftp 命令中更改到该目录来进一步简化,如下所示:

cd /content/UPLOAD

那么你的 put 语句如下所示:

put 35160101660296000130550020000540011858610314.txt

您不需要以这种方式指定文件名两次。 所以要传输这些文件:

C:\xml\UPLOAD\essa é nova pasta\35160101660296000130550020000540011858610314.txt
C:\xml\UPLOAD\essa é nova pasta\anotherfile.txt
C:\xml\UPLOAD\essa é nova pasta\yetanotherfile.txt
C:\xml\UPLOAD\essa é nova pasta\onemorefile.txt

到远程服务器的目录/content/UPLOAD:

user
password
lcd "C:\xml\UPLOAD\essa é nova pasta\"
cd /content/UPLOAD
put 35160101660296000130550020000540011858610314.txt
put anotherfile.txt
put yetanotherfile.txt
put onemorefile.txt
bye

【讨论】:

  • 我的文件可以来自多个文件夹,而不仅仅是我上面所说的文件夹(这是新文件夹)。我在 C:\xml\UPDATE\... 中还有其他几个。如果我必须处理 C:\xml\UPDATE\ 中多个子文件夹中的文件,Preciso 确保更新过程不会停止。必须识别带有重音符号的文件夹名称,以确保我的 FTP 脚本不会放置 .txt 文件
  • 然后让我们看看你的 for 循环,看看它为什么会破坏你的 é