【问题标题】:Strange Results from Batch For Loop n++Batch For Loop n++ 的奇怪结果
【发布时间】:2017-11-09 21:01:41
【问题描述】:

所有,我正在编写一个批处理脚本,它将文本文件中的输入读取到 for 循环中以执行 wget 命令。

文件的正文是:

BIO
CHM

for循环命令的一个例子是:

for /F "tokens=*" %%b in (Text\foo.txt) do (
wget.exe --load-cookies=cookies.txt -O Foo\%%b_foo "http://foo.org/search/search=%%b"

使用文本文件中的每一行作为搜索参数可以正确访问 url,但是在保存 wget 命令的输出时,文件名是 n++BIO_foo CHM_foo。循环似乎正在工作,但“n++”让我失望了。任何想法为什么会发生这种情况?它只发生在文本文件的第一行。

【问题讨论】:

  • 您确定 foo.txt 文件中有什么内容吗?在您的 wget 命令之前执行 echo %%b
  • 执行回显后,我在wget 命令之前得到一个奇怪的输出。它看起来像一个 n,在 BIO 之前有三个奇怪的半框。这表明文本文件本身在 BIO 之前有一个奇数字符,但这些字符是不可见的。
  • 我最好的猜测是 foo.txt 是一个 utf-8 文件而不是 ansi。在记事本中将文件重新保存为 ansi 编码。
  • 这正是问题所在。一旦我手动将文件设置为 ansi,一切正常。

标签: loops batch-file for-loop


【解决方案1】:

@Squashman 为我提供了解决此问题的正确线索。文本文件被编码为 utf-8 而不是 ansi,因此在尝试读取文件时引入了一个问题。更改文件类型(另存为)后,问题就解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 2018-06-06
    • 2013-08-05
    • 2019-10-03
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多