为什么IF认为这里有文件

时间:2014-02-18 22:13:26

标签: file batch-file if-statement file-exists false-positive

这是我的代码,似乎总是认为%filePath%存在,当我假设你没有。完全没有P:\Production\Database_backup\02182014-Database0400.mdb。我的桌面仅用于测试,然后才能在生产数据库上使用

set "PublishDest=P:\Production\Database_backup\"
set source=C:\Users\kevin\Desktop\Database0400.md*
:Main

set "currDate=%date:~4,2%%date:~7,2%%date:~10,4%"
Set "fileName=%currDate%-Database0400.mdb"
Set "filePath=%PublishDest%%fileName%"

if exist %filePath% (
    ECHO %filePath%
    ECHO you made it in here!
    PAUSE
    ::IF prev backup on same day, increment all old backups and move current to first old
    call:IncrementArchives
    Echo.
)

1 个答案:

答案 0 :(得分:1)

当我转向@echo时,我可以确切地看到我在跑什么,我看到我在问

IF EXIST P:\Production\Database_backup\02182014-Database0400.mdb

嗯,我想,也许一些报价会有帮助吗?所以我在第一次输入它(而不是使用变量)

IF EXIST "P:\Production\Database_backup\02182014-Database0400.mdb"

像魅力一样工作!

所以,我用if exist %filePath% (替换了if exist "%filePath%" (,然后突然有一群天使在唱着他们的美妙歌曲