【发布时间】: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