|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
『楼 主』:
[未结]带点畸形目录 批量 非空判断访问删除
补充,用rd命令结合||可以判断,但这会删除带点空目录,
有没其他方法,dir 什么的?
声明类似下面的代码思想的不算,这个改变了文件的创建日期.
rd 123..\ 2>nul||echo 非空
md 123..\ 2>nul -------------------------------------------------------------------------------------------------------------
17:30补充
还是得靠自己,现在我把代码贴出来供大家分享,不错话收藏.
(对其他畸形目录可能失效,后续完善,)
@echo off&setlocal enabledelayedexpansion
:by plp626@cn-dos.net on 2008-3-1
echo 当前目录内所有非空带点畸形目录及其包含文件如下:
set ln=----------------------------------------------
set m=0
for /f "tokens=4-5" %%a in ('dir/ad/x^|findstr /e \.') do (
echo %%b|findstr E>nul||dir/b %%a|find/v ":">nul&&(set/a m+=1
echo !m!!ln!&echo %%~dpb%%b 的目录:&echo.
dir/a/b %%a
) )
pause 另附代码:
访问
@echo off
:by plp626@cn-dos.net on 2008-3-3
if "%1"=="" dir/a&goto :eof
if "%1"=="/f" goto f
if "%1"=="/c" more "%~dpnx0"&goto :eof
if "%1"=="/?" goto syntax
set folder=%1
echo %folder%|findstr /e \.>nul&&set folder=%folder:.=\.%||(dir/a %1)
for /f "tokens=4-5" %%a in ('dir/ad/x^|findstr /e \.') do (
for /f "tokens=1-2" %%i in ('echo %%a %%b^|findstr /ec:" %folder%"') do (
dir/a/s/x %%i
) )
goto :eof
:f
dir /a/b|findstr /e \.||echo 当前路径下没有发现后缀带点目录
goto :eof
:syntax
echo dir命令的增强,可访问带点畸形目录.&echo.
echo /f 查看当前路径下的畸形目录
echo /c 查看%~nx0的源代码. &echo.
echo usage1:
echo 访问畸形目录时直接输入你所看到的畸形目录名.
echo 访问畸形目录内的目录用短名.(后续将改进)
echo 访问常规目录与dir命令同,有空个时加上双引号.
echo.&echo example:
echo 访问123.目录: %~n0 123.
goto :eof 删除(直接粘贴代码到命令行下.切勿在ghost备分文件所在路径下运行!)
即使目录内存放Con, Prn, Aux, Nul, Lpt?, Com?等(?表示数字1-9)非带点畸形目录也照删。
::删当前目录内任意带点畸形目录
for /f "delims=" %a in ('dir/ad/b^|findstr /e "\."') do rd /q/s "\\?\%a" 2>nul
::删当前目录,包括子目录内的任意带点畸形目录
for /f "delims=" %a in ('dir/ad/s/b^|findstr /e "\."') do rd /q/s "\\?\%a" 2>nul
::在当前路径目录树下 删任意带点空畸形目录 显示 非空畸形目录
for /f "delims=" %a in ('dir/ad/s/b^|findstr /e "\."') do rd "%a.\" 2>nul||echo %a [ Last edited by plp626 on 2008-4-27 at 12:11 AM ]
|
|
2008-2-29 21:22 |
|
|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
『第
2 楼』:
没人? 是我说的不很明白吗?
发这个帖子不是我没事整事,因为有些U盘病毒竟然就存在这畸形目录里.
畸形目录里也可以存放文件的,
比如用命令
copy *.* 123..\ 就可以将当前路径下的所有文件复制到123.文件夹里.
现在就是怎么判断这畸形目录里是否有文件存在,即是否非空.
望大家踊跃参与!
[ Last edited by plp626 on 2008-3-1 at 12:43 AM ]
|
|
2008-3-1 00:40 |
|
|
huahua0919
银牌会员
积分 1608
发帖 780
注册 2007-10-7
状态 离线
|
『第
3 楼』:
说来奇怪,虽然文件被拷贝进去,但是查看其文件夹属性仍为0字节!
|
|
2008-3-1 12:17 |
|
|
huahua0919
银牌会员
积分 1608
发帖 780
注册 2007-10-7
状态 离线
|
『第
4 楼』:
说来奇怪,虽然文件被拷贝进去,但是查看其文件夹属性仍为0字节!
|
|
2008-3-1 12:18 |
|
|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
『第
5 楼』:
学校机房里的机子有不少畸形目录里,而大多畸形目录没有放文件,
我就是要看看有那些目录里有文件,
望达人指点迷津,偶不胜感激!
[ Last edited by plp626 on 2008-3-1 at 06:59 PM ]
|
|
2008-3-1 14:45 |
|
|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
『第
6 楼』:
哈哈.终于想出来了.
此贴已结!
[ Last edited by plp626 on 2008-3-1 at 03:51 PM ]
|
|
2008-3-1 15:36 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
7 楼』:
楼主想出来了,可否将方法共享一下?
|
致精致简! |
|
2008-3-1 17:20 |
|
|
523066680
银牌会员
SuperCleaner
积分 2362
发帖 1133
注册 2008-2-2
状态 离线
|
『第
8 楼』:
再一个就是如果在 a. 里面放一个 nul\ 就不能直接用Rd ae216~1 /s /q 删除了啊
还非得进入ae216~1 然后Rd nul 啊……(只是个人观点)
|
|
2008-3-1 18:42 |
|
|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
『第
9 楼』:
523066680说的是
我的代码算法就是以文件名后缀为"."来设计的.
有时间我结合第一个代码把这个考虑进去考虑下,应该不难.
|
|
2008-3-1 19:44 |
|
|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
『第
10 楼』:
实际做起来还真麻烦,给个测试代码
请删之:
@echo off
for %%a in (plp 626 cn dos 1 0 fdf d ret 就 是 lo aux com1 nul con pp 465 漂来漂 看 ai) do (
md %%a...\ %%a...\...\
for %%b in (con nul aux com1) do (
md %%a...\%%b\
copy *.bat "%%a...\%%b\"
md %%a...\%%b\con\
) ) [ Last edited by plp626 on 2008-3-1 at 09:57 PM ]
|
|
2008-3-1 21:10 |
|
|
learner0
初级用户
积分 108
发帖 49
注册 2008-2-26
状态 离线
|
『第
11 楼』:
恐怕只有用start打开这些畸形目录来判断其是否为空........
|
|
2008-3-1 21:46 |
|
|
learner0
初级用户
积分 108
发帖 49
注册 2008-2-26
状态 离线
|
『第
12 楼』:
还可用type来判断,测试代码如下:
md d:\1_11..\&echo %random%>d:\1_11..\11.txt&type d:\1_11..\11.txt
|
|
2008-3-1 21:52 |
|
|
h2thesun
初级用户
积分 34
发帖 14
注册 2007-12-13
状态 离线
|
|
2008-3-1 23:31 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
14 楼』:
我们看到显示的原本文件夹少个点。
如果你在同目录放一个123.
再建一个123目录。
你访问123.的时候就是实质访问123文件夹。所以看大小的话可以显示123目录的,如果没有123目录是0。
系统认123.是123的属性。。。所以你看不到实际的大小,同样你双击访问不了也是这个原因,你建立了123后就相当于访问123文件夹。
123.你也可以点删除了,不提示错误,因为会删除123目录。
PS:
不知道看完上面你能猜到麽?
访问带点目录不是非要start……的哦。
知道上面的了就很容易理解……
应该是原创嘿嘿。起码我不是在别的地方转的。
md 123...\
你访问这个目录就是访问那个畸形带.的目录,大小什么的信息也都可以滴~
|
|
2008-3-2 00:05 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
15 楼』:
呵呵,这个早有讨论过了的。
你所访问的都是123这个目录的信息,实际上123。。。这个目录还是存在的,里面的内容你通过双击123这个目录也是看不到的。
|
致精致简! |
|
2008-3-2 00:34 |
|