如果存在则找不到批处理文件

时间:2013-11-27 13:12:50

标签: batch-file windows-xp

我有一个问题,我无法弄清楚为什么会发生这种情况

我写了一个小文件,它打开一个ftp连接,下载一个目录中所有ftp文件的列表,并将它们存储在这样的文本文件中:

file.txt
file1.txt
file2.txt

这些是我通过ftp下载到网络共享的文件,我想在这个文本文件的帮助下检查它们是否真的已经下载到该文件夹​​中。

这是脚本:

pushd \\server\share


doing ftp stuff, working fine, the files really do exist.
\\EDIT: Using 
mls * ftpdir.txt
to get all the files in the ftp dir.


for /F "tokens=*" %%L in (ftpdir.txt) do (

    REM another thing I tried was this:
    REM if exist %%L (
if exist %%L (
    echo %%L found
) else (
    echo not found [%%L]
    )
)

还有一些选择。所有人都直接进入了其他部分,说未找到。 到目前为止唯一有效的方法是将文件放在与脚本相同的文件夹中。

在旁注中,如果我没有发现回声[%% L]或回声[%% L]没有发现它给了我一个非常奇怪的输出。 (不仅是每条相似的行,还包含带有var和text的回声。

在CMD(括号)上:

]ot found [file.xls

同时,当我将输出提供给文件时,它看起来像这样:

not found [file.xls ]
和xls之间似乎有一些符号像换行符,在编辑器中有一个正方形,当我在这里粘贴这一行时,它会自动在换行符上写下]。

这对我来说并不是那么重要,因为echo不能像我期望的那样工作,但也许它在我的cmd中显示错误或者在某种程度上是相关的。

任何帮助都会受到赞赏,为什么if存在不起作用?

谢谢!

1 个答案:

答案 0 :(得分:2)

根据您的描述以及文件名后面有空格的事实,在十六进制编辑器中打开文件并查看。我敢打赌,有一个额外的换行导致问题。

相关问题