我有一个奇怪的情况,我不知道出了什么问题
我需要检查目录中是否存在至少一个带模式的文件。
IF EXIST d:\*Backup*.* (
ECHO "file exist"
) ELSE (
ECHO "file not exist"
)
如果在d:\我有一个文件x_Backup.txt
和一个文件夹Backup
我得到file exist
但是如果我只有文件夹Backup
我会再次{{1}似乎忽略了路径中的点。
答案 0 :(得分:13)
您也可以使用未记录的通配符来实现此目的。
IF EXIST "D:\*Backup*.<" (
ECHO "file exist"
) ELSE (
ECHO "file not exist"
)
以下两个链接详细讨论了这个通配符选项和其他选项。 http://www.dostips.com/forum/viewtopic.php?t=6207
http://www.dostips.com/forum/viewtopic.php?f=3&t=5057
从这些链接:
The following wildcard characters can be used in the pattern string.
Wildcard character Meaning
* (asterisk)
Matches zero or more characters
? (question mark)
Matches a single character
"
Matches either a period or zero characters beyond the name string
>
Matches any single character or, upon encountering a period or end of name string, advances the expression to the end of the set of contiguous >
<
Matches zero or more characters until encountering and matching the final . in the name
答案 1 :(得分:5)
使用此;它适用于任何特定模式:
set "fileExist="
for %%a in (d:\*Backup*.*) do set "fileExist=1" & goto continue
:continue
IF DEFINED fileExist (
ECHO "file exist"
) ELSE (
ECHO "file not exist"
)
答案 2 :(得分:4)
这是另一种选择。
dir d:\*back*.* /b /a-d >nul 2>&1
if errorlevel 1 echo files exist
答案 3 :(得分:2)
{
"offset": {
"totalSeconds": 7200,
"id": "+02:00",
"rules": {
"fixedOffset": true,
"transitionRules": [],
"transitions": []
}
},
"dayOfMonth": 10,
"dayOfWeek": "THURSDAY",
"dayOfYear": 344,
"hour": 15,
"minute": 1,
"month": "DECEMBER",
"monthValue": 12,
"nano": 117000000,
"second": 39,
"year": 2015
}
相当于dos中的*.*
。它只意味着什么&#39;而不是任何东西 - 期间 - 任何东西。
要检查目录,请尝试以下操作:
*