2013-06-24 103 views
1

我需要检查给定文件是否存在或区分大小写,out.txt(全部为小写字母)文件存在于我运行脚本的位置。如果存在检查大小写区分大小写

代码:

Case1: 
filename=out.txt 
if exist %filename% (
    echo file exist... 
) else echo File doesn't exist... 

Case2: 
filename=OUT.TXT 
if exist %filename% (
    echo file exist... 
) else echo File doesn't exist... 

对于它显示一个文件中同时存在的情况下输出...。但我需要检查区分大小写。它应该显示 “文件不存在” 味精OUT.TXT

在此先感谢

回答

2

取文件名:

@echo off 
dir /b /a-d "%~1"|find "%~1" >nul 
if %errorlevel% == 0 (echo found) else (echo fail) 

dir其实不区分大小写 - 但find是...

+0

是的...它的工作...非常感谢 – user1553605

+2

更安全地使用'dir/b/a-d“%〜1”|查找“%〜1”> nul' – dbenham

+0

两行改进 - 不错! – Stephan

1

添加文件列表解析:从参数

@echo off 
for /f "delims=" %%z in ('type "namelist.txt" ') do (
if not exist "%%~z" echo "%%~z" not found 
if  exist "%%~z" for %%a in ("%%~z") do if "%%a"=="%%~z" (echo "%%~z" is the right case) else (echo "%%~z" is the wrong case "%%a found") 
) 
pause 
+0

谢谢s ...但在这里脚本从另一个脚本获取文件名作为输入..我们不知道文件名在这里比较像“OUT.TXT”。如果我们比较一下,对于(%filename%)中的%% a,如果存在“%% a”==“%filename%”回显文件,结果相同,如“if exists%filename%” – user1553605

+0

@ user15536​​05如果你想解析一个文件名列表,那就这么说吧。我的代码做了你所问的。看到上面的更改文件解析。 – foxidrive