标题: [ 新手练习题 3 ] 批处理判断目录存在与否 [打印本页]
作者: wxcute 时间: 2009-5-30 21:08 标题: [ 新手练习题 3 ] 批处理判断目录存在与否
[ 新手练习题 3 ] 判断目录存在与否
判断 C:\ 盘是否存在 WINDOWS 目录。如果存在,则用资源管理器打开目录。
不存在则创建此目录并打开。
目的:掌握判断目录存在与否的方法,学会调用程序打开目录。
要求:方法不限。
评分:代码可读性 1 分;
首个新方法 4 分,第二个 3 分,依次类推,最少 2 分;
一人可多种方法,新方法追加 2 分,已经出现过的方法追加 1 分。
作者: yslyxqysl 时间: 2009-5-30 21:20
- Dir C:\ /a:d /b 2>nul|Findstr /i "^Windows$">nul||md C:\Windows&Explorer C:\Windows
复制代码
或者- (If Not Exist C:\Windows\nul md C:\Windows)&Explorer C:\Windows
复制代码
最直接的- md C:\Windows 2>nul&Explorer C:\Windows
复制代码
[ 本帖最后由 yslyxqysl 于 2009-5-30 21:27 编辑 ]
作者: stuqx 时间: 2009-6-3 10:13
- @echo off
- cd /d c:\windows
- if %errorlevel% equ 1 (md c:\windows)
- explorer c:\windows
复制代码
这样应该可以了吧
作者: flyzr 时间: 2009-6-5 13:24
- @echo off
-
- if exist c:\windows (
- explorer c:\windows
- ) else (
- md c:\windows)
-
- pause >nul
复制代码
[ 本帖最后由 flyzr 于 2009-6-5 13:27 编辑 ]
作者: keen 时间: 2009-6-5 17:11
- @echo off
- explorer.exe c:\windows||md c:\windows
复制代码
[ 本帖最后由 keen 于 2009-6-5 17:19 编辑 ]
作者: wangshuping42 时间: 2009-6-8 23:28
- @echo off
- if exist c:\windows (goto open) else (
- md c:\windows
- )
- :open
- start c:\windows
- exit
复制代码
作者: rwxyxy 时间: 2009-6-10 13:35
- @echo off
- cd c:\windows 2>nul
- if errorlevel 1 ( del c:\windows 2>nul & md c:\windows )
- explorer c:\windows
- pause>nul
复制代码
这个如何?
作者: quake_wu 时间: 2009-6-12 10:30
- @echo off
- dir /ad /b c:\ |findstr "windows" &&explorer c:\windows ||md c:\windows
复制代码
请问一下为什么我这段代码直接在命令行下运行没有异常
放到bat里执行就会出现一点异常,异常就是如果存在windows 它还是会去执行 md c:\windows
[ 本帖最后由 quake_wu 于 2009-6-12 10:32 编辑 ]
作者: q625805390 时间: 2009-7-27 22:06
@echo off
if exist c:windows (start c:windows) else (md c:windows)
pause>nul
作者: lee 时间: 2009-8-3 00:36
- @echo off
- for %%i in ("c:\windows") do (
- if exist %%i (explorer %%i) else (
- md %%i&&explorer %%i
- ))
- pause
复制代码
谢谢LZ指导!!
[ 本帖最后由 lee 于 2009-8-4 14:11 编辑 ]
作者: nopr 时间: 2009-8-3 10:05
- @echo off
- set str=c:\windows
- if exist %str% (c:\windows\explorer.exe %str%) else md %str%&c:\windows\explorer.exe %str%
- pause
复制代码
[ 本帖最后由 nopr 于 2009-8-3 10:25 编辑 ]
作者: nopr 时间: 2009-8-6 16:55 标题: 简单点的
@echo off
cd \&md windows 2>nul&start windows
goto :eof
作者: hs4814 时间: 2009-8-9 21:01
- @echo off
- dir c:\windows>nul
- if errorlevel 1 ( echo 此目录不存在将建立&md c:\windows\ &explorer c:\windows) else (echo 存在此目录&explorer c:\windows)
- pause>nul
复制代码
请楼主检查
[ 本帖最后由 hs4814 于 2009-8-9 21:31 编辑 ]
作者: quake_wu 时间: 2009-8-11 15:17
原帖由 quake_wu 于 2009-6-12 10:30 发表
@echo off
dir /ad /b c:\ |findstr "windows" &&explorer c:\windows ||md c:\windows请问一下为什么我这段代码直接在命令行下运行没有异常
放到bat里执行就会出现一点异常,异常就是如果存在windows 它还是会去执 ...
感谢wxcute版主的指导
我重新调整了code
-
- dir /ad /b c:\ |findstr /IX "windows" &&start explorer c:\windows ||md c:\windows
复制代码
作者: wayaoqiang 时间: 2009-8-12 17:29
- @echo off
- set pat=c:\WINDOWS
- if exist %pat% (start %pat%) else (md %pat%&&start %pat%)
复制代码
[ 本帖最后由 wayaoqiang 于 2009-8-17 21:01 编辑 ]
作者: atsivsucks 时间: 2009-8-19 08:51
- @echo off
-
- if not exist c:\windows (
- md c:\windows
- )
-
- explorer c:\windows
-
- pause
复制代码
[ 本帖最后由 atsivsucks 于 2009-8-19 08:56 编辑 ]
作者: msconfig 时间: 2009-8-21 16:02
@echo off
if exist C:\WINDOWS (goto a)
else (
md C:\WINDOWS)
:a
explorer C:\WINDOWS
pause>nul
有个问题不太明白。上面的代码中,如果存在C:\WINDOWS结果正确。若是不存在呢。新建一个后我没有写代码用explorer打开。却也执行打开了。想不明白。
[ 本帖最后由 msconfig 于 2009-8-21 16:15 编辑 ]
作者: lianfayong 时间: 2009-8-26 18:15
@echo off
if exist \windows\nul explorer \windows
md windows & start \windows
pause
作者: cs19860814 时间: 2009-8-27 08:17
@echo off dir c:\ WINDOWS>nul 2>nul if errorlevel neq 0 ( md C:\WINDOWS ) esle ( explorer C:\WINDOWS ) pause>nul
作者: DXSX 时间: 2009-9-17 08:58
这里面涉及到一个问题:
1、如果WINDOWS 是以一个文件的形式存在呢?
2、判断文件夹是否存在应该用 IF EXIST C:\WINDOWS\NUL
作者: dominater 时间: 2009-10-13 00:06
- @echo off
- if exist c:\Windows (
- echo 目录已存在,准备打开...) else (
- choice /c YN /m 目录不存在,现在创建?是选Y,否选N
- if errorlevel 2 goto end
- if errorlevel 1 goto Y
- :Y
- md c:\Windows
- )
- start c:\Windows
- :end
- pause
复制代码
作者: samble 时间: 2009-10-15 21:29
方法一代码:
- md c:\windows 2>NUL & explorer c:\windows
复制代码
方法二:
用 IF 语句判断- if exist c:\windows\nul (explorer c:\windows) else (
- md c:\windows & explorer c:\windows)
复制代码
之所以用 explorer 而不用 start ,是因为我发现用 explorer 打开目录速度快点。
[ 本帖最后由 samble 于 2009-10-15 21:48 编辑 ]
作者: pumahxh 时间: 2009-11-10 18:59
还是新手,看起来我的方法很呆板。- @echo off
- if exist c:\windows\nul (explorer c:\windows
- ) else (md c:\windows & explorer c:\windows)
- pause>nul
复制代码
刚开始没有考虑windows可能为文件,后来看到大家提示,学习了。
楼上的方法一,很经典!
[ 本帖最后由 pumahxh 于 2009-11-10 19:10 编辑 ]
作者: zgq0301 时间: 2009-11-13 20:04
- @echo off
- cd c:\
- cd windows && explorer.exe c:\windows || md windows &&explorer.exe windows
- pause
复制代码
作者: jcy0307 时间: 2009-11-20 19:15 标题: 回复 1楼 的帖子
@echo off
if exist c:\windows start c:\windows
if not exist c:\windows md c:\windows && start c:\windows
pause
作者: ljjllj 时间: 2009-11-26 15:43
- @echo off
- if exist "C:\WINDOWS" (explorer C:\WINDOWS) else echo windows不存在
- pause>nul
复制代码
作者: summerflower 时间: 2009-11-27 23:18
- @echo off
- setlocal
- set pt=c:\windows
- if not exist %pt% md %pt%
- start %pt%
- endlocal
复制代码
作者: cy32cxb98 时间: 2009-11-28 04:53
- (if not exist c:\WINDOWS (md c:\WINDOWS&start /high explorer c:\WINDOWS))&&start /high explorer c:\WINDOWS
复制代码
作者: x576380361 时间: 2009-12-5 21:39
判断 C:\ 盘是否存在 WINDOWS 目录。如果存在,则用资源管理器打开目录。
不存在则创建此目录并打开。- if exist c:\windows (explorer c:\windows) else (
- md c:windows
- explorer c:\windows)
复制代码
作者: bjjgq 时间: 2009-12-7 20:20
我的代码:
@echo off
for /f %%i in ('dir /b/ad c:\') do (
echo %%i | find /i "windows">nul && start c:\windows )
作者: wgoxm521 时间: 2009-12-10 19:28 标题: 代码
@echo off
if exist c:\windows (explorer c:\windows) else (md c:\windows && explorer c:\windows)
pause
作者: wsjxwj 时间: 2009-12-11 14:35
@echo
if not exist %windir% md c:\windows &&explorer c:\windows
explorer c:\windows
作者: Fyk 时间: 2009-12-12 18:25
@echo off
if exist c:\windows (goto 0) else (goto 1)
:0
explorer c:\windows
:1
md c:\windows
pause > nul
作者: lvyaojian 时间: 2009-12-13 21:31
- @echo off
- if exist c:\windows (explorer c:\windows) else md c:\windows
- pause
复制代码
作者: sxw 时间: 2009-12-13 22:15
@echo off
cd\
dir c:|find /i "windows"&&start c:\windows||echo 没有找到windows!
pause
作者: common 时间: 2010-5-30 23:00
@echo off
if exist c:\windows (echo 文件夹成在) else md c:\windows
explorer c:\windows
pause
作者: gxuan2008 时间: 2010-7-3 15:09
- @echo off
- cd /d c:\windows && explorer c:\windows || md c:\windows && explorer c:\windows
- pause<nul
复制代码
有个问题:怎么把那个黑乎乎的CMD窗口关掉?
-----------------------------------------------------------------------------------------------------
再改一下,虽然差不多。
- @echo off
- cd /d c:\windows || md c:\windows
- explorer c:\windows
- pause<nul
复制代码
[ 本帖最后由 gxuan2008 于 2010-7-3 15:14 编辑 ]
作者: poxi 时间: 2010-7-18 20:06
答:- @echo off
- if exist c:\windows (
- echo 存在windows目录,将为您打开...
- ) else (
- echo 不存在windows目录,为您创建后将打开...
- md c:\windows
- )
- explorer c:\windows
- pause
复制代码
效果:
==============
end;
作者: solid 时间: 2010-7-27 22:42
@echo off
if exist c:\windows start c:\windows
作者: solid 时间: 2010-7-27 22:45
@echo off
if exist c:\windows start c:\windows
md c:\windows
start c:\windows
::上面忘记在没有时创建windows文件夹了。
作者: paladinjin 时间: 2010-8-26 11:33
- @echo off
- if exist c:\windows explorer c:\windows || md c:\windows && explorer c:\windows
- pause>nul
复制代码
作者: imin 时间: 2010-9-12 03:33
cd\
c:
dir /ad-h| find "WINDOWS"
if %errorlevel%==0 explorer windows
if %errorlevel%==1 md WINDOWS
exit
[ 本帖最后由 imin 于 2010-9-12 03:40 编辑 ]
作者: backup 时间: 2010-9-12 15:33
@echo off
if /i exist c:\windows (start c:\windows) else (md c:\windows && start c:\windows)
作者: lvsehuaxue 时间: 2010-9-16 21:45 标题: 启发
看了各位的帖子之后,真是感觉“条条大道通罗马!”尽管繁简不一。
作者: meihaodehuiyi 时间: 2010-10-12 14:46
@echo off
if exist c:\windows\ (explorer c:\windows) else (md c:\windows && explorer c:\windows)
pause
作者: cjiabing 时间: 2010-11-11 10:55
最直接实用的:
-
- if exist %SYSTEMROOT% (explorer %SYSTEMROOT%) else (md %SYSTEMROOT%)
复制代码
通用目录判断(三层条件判断):
-
- if exist "%SYSTEMROOT%\." dir /a:d "%SYSTEMROOT%">nul 2>nul&&echo 文件夹存在
复制代码
作者: pengyimin1988 时间: 2010-12-8 17:50 标题: 来个拐弯抹角多此一举的但是正确的请楼主鉴定
来个拐弯抹角多此一举的
嘿嘿嘿
@echo off
dir /ad /b c:\>tmp.txt
findstr /ix "windows" "tmp.txt"
if %errorlevel% gtr 0 (
echo no c:\windows
md c:\windows
)
explorer c:\windows
[ 本帖最后由 pengyimin1988 于 2010-12-8 17:51 编辑 ]
作者: keyll 时间: 2010-12-11 06:49 标题: 批处理判断目录存在与否
@echo off
cd\ & c: & dir | find "WINDOWS" & cd WINDOWS & md C:\WINDOWS & dir c:\windows
pause
作者: keyll 时间: 2010-12-11 06:55 标题: 批处理判断目录存在与否
@echo off
cd\ & c: & cd WINDOWS || md C:\WINDOWS & dir c:\windows
pause
作者: skuny 时间: 2010-12-26 14:23
- @echo off
- md d:\windows 2>nul
- start d:\windows
复制代码
作者: wangqi0077 时间: 2011-5-29 09:24
- @echo off
- if exist F:\bat\test\abc (F:\bat\test\abc) else (md F:\bat\test\abc&explorer F:\bat\test\abc)
- pause
复制代码
没用WINDOWS.怕系统搞出问题...抱歉.随便用个目录没问题吧?
作者: wangqi0077 时间: 2011-5-29 09:25
- @echo off
- if exist F:\bat\test\abc (F:\bat\test\abc) else (md F:\bat\test\abc&explorer F:\bat\test\abc)
- pause
复制代码
没用WINDOWS.怕系统搞出问题...抱歉.随便用个目录没问题吧?
作者: common 时间: 2011-6-7 23:07
- echo off
- if exist c:\windows (explorer c:\windows) else (md c:\windows)
- pause
复制代码
作者: Hello123World 时间: 2011-7-19 17:19
本帖最后由 Hello123World 于 2011-7-19 17:20 编辑
- @echo off
- If Exist %windir% (start %windir%) Else md %windir% & start %windir%
- pause
复制代码
作者: scarcr 时间: 2011-8-4 18:58
回复 1# wxcute - @echo off
- cd /d c:\windows
- if errorlevel 1 (md c:\windows&goto b)
- if errorlevel 0 (goto b)
- :b
- explorer c:\WINDOWS\@echo off
复制代码
作者: zijian521500 时间: 2011-8-8 11:26
if exist c:\WINDOWS explorer c:\WINDOWS
else md c:\WINDOWS
作者: wrove 时间: 2011-8-8 15:54
:CheckDir
Set DirPath=%~1
If exist %DirPath% (Explorer %DirPath%) Else (Md %DirPath%&&Explorer %DirPath%)
Goto :Eof
作者: xslxslxsl 时间: 2011-8-16 16:42
@echo off
cd /d c:\windows
if %errorlevel% equ 1 (md c:\windows)
explorer c:\windows
作者: zaixinxiangnian 时间: 2011-8-16 19:51
- @echo off
- if exist d:\windows (goto a) else md d:\windows
- :a
- start explorer d:\windows
- pause>nul
复制代码
作者: brim 时间: 2011-9-18 09:51
- @echo off
- :aa
- set/p aa=请输入完整路径:
- if exist "%aa%" (echo 文件/活页夹存在) else echo 文件/活页夹不存在
- goto aa
复制代码
作者: Batcher 时间: 2011-9-18 10:03
回复 63# brim
题目要求是判断目录是否存在,你这个代码无法区分文件和目录。
作者: brim 时间: 2011-9-18 22:57
本帖最后由 brim 于 2011-9-18 23:20 编辑
回复 64# Batcher - @echo off
- :aa
- set/p aa=请输入完整路径:
- set aa="%aa%"
- if exist %aa% (
- 2>nul pushd %aa%&&echo 您的输入%aa%是存在的且是个文件夾||echo 您的输入%aa%是存在的且是个文件
- ) else (
- echo 您的输入%aa%不存在
- )
- popd
- goto aa
复制代码
1>nul 执行正确信息不显示出来。
2>nul 执行错误信息不显示出来。
&&该符号之前的语句执行成功,将执行它之后的语句
||该符号之前的语句执行失败,将执行它之后的语句
作者: brim 时间: 2011-9-19 00:08
- @echo off
- :aa
- set/p aa=请输入完整路径:
- set bb=%aa:"=%
- set aa="%bb%"
- if exist %aa% (
- 2>nul pushd %aa%&&echo 您的输入%bb%是存在的而且是个文件夾||echo 您的输入%bb%是存在的而且是个文件
- ) else (
- echo 您的输入%bb%不存在
- )
- popd
- goto aa
复制代码
修改了一下,去掉了引号的显示。支持直接拖拽
作者: Batcher 时间: 2011-9-19 20:32
回复 66# brim
if exist %aa%\
这样可以判断文件夹
作者: mcah1975 时间: 2011-11-18 11:03
@echo off
if exist c:\windows (start c:\windows) else echo c:\windows不存在
pause
作者: wangxiaodong 时间: 2012-2-24 19:52
回复 3# stuqx
大哥if %errorlevel% equ 是什么意思?先谢谢了!
作者: cjiabing 时间: 2012-2-24 20:16
回复 68# mcah1975
失败,请重试!提醒,是判断文件夹,不是判断存在!~
作者: cjiabing 时间: 2012-2-24 20:17
回复 69# wangxiaodong
“返回码”,自己搜索论坛~
作者: wangxiaodong 时间: 2012-2-25 13:39
回复 71# cjiabing
谢谢版主!
作者: lokivalentine 时间: 2012-6-9 11:36
- @echo off
- @if NOT exist %windir% (md windows&call explorer %windir%)
- @if exist %windir% (call explorer %windir%)
- @echo 已经完成
- pause>nul
复制代码
作者: yaboo 时间: 2012-7-12 21:14
回复 1# wxcute
if exist "c:\windows" goto aaa
if not exist "c:\windows" goto bbb
:aaa
explorer.exe c:\windows
:bbb
md c:\windows & exeplorer.exe c:\windows
这个命令完全符合出题老师的要求
explorer.exe c:\windows || md c:\windows & explorer.exe c:\windows
这条命令也应该符合出题老师的要求
md c:\windows
exeplorer.exe c:\windows
这条命令可以符合出题老师要求达到的结果
作者: 路过 时间: 2012-10-20 16:00
start c:\WINDOWS||md c:\WINDOWS
作者: Clarkky 时间: 2013-1-27 23:14
- @echo off
- if exist c:\windows (
- if exist c:\windows\nul.ext (
- explorer.exe c:\windows
- goto :eof
- ))
- if exist c:\windows ren c:\windows windows_bak
- md c:\windows
- explorer.exe c:\windows
复制代码
作者: battab 时间: 2014-2-19 17:50
本帖最后由 battab 于 2014-2-19 17:52 编辑
回复 1# wxcute - @echo off
- if exist c:\windows (start c:\windows) else (md c:\windows&start c:\windows)
- pause
复制代码
作者: techon 时间: 2014-9-11 01:08
顺便出一个问题,如何用 if exist 判断 “D:\Program Files” 是文件还是目录?。。。
当路径中不含有空格时,用 if exist 路径 if exist 路径\nul (echo “路径”是目录) else “路径”是文件
作者: ann 时间: 2014-12-20 14:56
试试- @echo off
- if not exist F:\windows\ (md F:\windows\&start F:\windows\) else
-
- (explorer F:\windows\)[color=LemonChiffon][/color]
复制代码
作者: zzw8822 时间: 2015-4-23 09:35
- @echo off
- cd /d c:\windows
- if exist c:\windows explorer c:\windows
- if not exist c:\window md c:\windows
复制代码
作者: gawk 时间: 2015-4-23 16:11
回复 80# zzw8822
两个建议
1. 在不确定 c:\windows 是否存在的情况下就直接 cd /d 没啥意义
2. 两个 if 命令可以合并成一个 if ... else ...- if exist c:\windows\ (
- explorer c:\windows
- ) else (
- md c:\windows
- )
复制代码
作者: dizimotong 时间: 2015-5-5 12:43
方法一- if exist c:\windows\ (
- echo c:\windows存在
- start c:\windows\ ) else (
- echo c:\windows\不存在
- echo 开始创建c:\windows\
- md c:\windows\
- start c:\windows\ )
- pause>nul
复制代码
方法二- cd /d d:\windows&&echo 目录存在||md d:\windows
- explorer d:\windows
- pause>nul
复制代码
作者: clsgalmc 时间: 2015-5-8 23:33
@echo off
set str=c:\windows
if exist %str% (start explorer.exe) else (cd /d c:\&md windows)
pause
作者: wutarnow 时间: 2015-10-20 15:38
本帖最后由 wutarnow 于 2015-10-20 15:46 编辑
- @echo off
- md c:\windows 2>nul & start c:\windows\
复制代码
作者: sishentibu 时间: 2016-3-31 21:51
- @echo off
- set diretory=c:\windows
- if exist %diretory% (explorer %diretory%) else (md %diretory%&explorer %diretory%)
复制代码
作者: 胖奇4BAT 时间: 2016-4-22 15:36
@echo off
if exist D:\Windows (
explorer D:\Windows
) else (
md D:\Windows
)
pause
作者: zhuzhen830201 时间: 2016-11-8 21:36
@echo off
if exist c:\windows explorer c:\windows else md c:\windows
作者: 懒虫阿布 时间: 2018-7-29 13:14
- @echo off
- set specfolder=%1
- if not exist "%specfolder%" (
- md "%specfolder%"
- )
-
- start "%specfolder%" "%specfolder%"
复制代码
作者: impk 时间: 2019-7-28 17:46
判断 C:\ 盘是否存在 WINDOWS 目录。如果存在,则用资源管理器打开目录。
不存在则创建此目录并打开。- @echo off
- set path="C:\windows"
- if exist %path% explorer %path%
- if not exist %path% md %path%
- start explorer %path%
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |