找回密码
 加入
搜索
楼主: afan

[系统综合] 获取畸形文件夹的短文件名

 火... [复制链接]
 楼主| 发表于 2010-3-31 21:58:11 | 显示全部楼层
3.3.5.6

aaa.bb.
aa.abb.
aaabb..
这些都对
发表于 2010-3-31 21:59:58 | 显示全部楼层
用DIR /X命令,有时候也看不到短文件名的,不知道为什么???
 楼主| 发表于 2010-3-31 22:04:00 | 显示全部楼层
用DIR /X命令,有时候也看不到短文件名的,不知道为什么???
卫和谐 发表于 2010-3-31 21:59



    这个可能性没有吧?能否举例
发表于 2010-3-31 22:07:25 | 显示全部楼层
本帖最后由 卫和谐 于 2010-3-31 22:08 编辑

比如123的文件夹!或者123.au3或者123456等!
 楼主| 发表于 2010-3-31 22:07:27 | 显示全部楼层
回复 28# C.L

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2010-3-31 22:08:09 | 显示全部楼层
比如123的文件夹!
卫和谐 发表于 2010-3-31 22:07



    123 不用短啊~ 已经够短了, 8.3规则
发表于 2010-3-31 22:11:59 | 显示全部楼层
vista下的短文件命名方式应该有了变化,上图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2010-3-31 22:13:29 | 显示全部楼层
vista下的短文件命名方式应该有了变化,上图:
3mile 发表于 2010-3-31 22:11



    应该不会,短文件名应该是dos的命名规范,dos规则没变就应该一样~
发表于 2010-3-31 22:13:50 | 显示全部楼层
回复 35# afan

我明白了,用一个目录,~4以后,好象没有~5?变成另一种命令方式了,我这里测试,前4个都正常,到了第5个就变成不能获取了
不知道这个超出以后的命令规则,我也没法弄了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-3-31 22:16:31 | 显示全部楼层
3.3.5.6

aaa.bb.
aa.abb.
aaabb..
这些都对
afan 发表于 2010-3-31 21:58


我测试这些,也没有短文件名啊!
 楼主| 发表于 2010-3-31 22:17:37 | 显示全部楼层
我测试这些,也没有短文件名啊!
卫和谐 发表于 2010-3-31 22:16



    你没有创建这些文件夹吧?贴个图看看~
 楼主| 发表于 2010-3-31 22:20:21 | 显示全部楼层
回复 40# 卫和谐


   
12345678.123  -- 无
12345678.1234 -- 123456~2.123
123456789.123 -- 123456~1.123
 楼主| 发表于 2010-3-31 22:31:10 | 显示全部楼层
回复 39# C.L


    网上搜的,不知道有用不
在超过4个文件的情况下.....
第5个文件开始..
在文件头偏移量F3处开始到偏移量101位置,好像是系统随机生成的字符串....
这个字符串就是8.3的文件名...
好像只有前两个字符和原文件一样....
发表于 2010-3-31 22:35:48 | 显示全部楼层
本帖最后由 C.L 于 2010-3-31 22:37 编辑

现在总结一下,畸形文件夹短文件名:
1、文件名中有.和空格的(除最后的一个),短文件名会去掉"."和空格,去除以后的文件名大于6的,第7个字符开始被删除,后面加上~1,如果有同名文件存在,则累加,累加至~4,则变成另一种命令方式;去除"."和空格后,少于6个字符的,则直接在后面接上~1,如果有同名,则累加,(累加至~4,则变成另一种命令方式?未测试)
2、文件名小于3(带".")时,命令规则未知)
3、中文带.文件名是否和以上命名规则相同,未测试。
以上总结,在此做个记号。目前我的能力只能做到这点了, 呵呵,afan,请别见怪。
更改一下代码,增加空格的处理:
$f = InputBox ("目录名" ,'目录名(目录名不要带"/"或""):')
If $f = "" And StringRight($f,1)<> "." Then Exit
If StringLen($f)<3 Then
        MsgBox (0,"","你建的目录实在是太变态了,拒绝执行")
        Exit
EndIf
RunWait(@ComSpec & ' /C Md "' & $f & '."', '', 0)
$Sn = getShutName ($f)
Run (@ComSpec &" /c dir /x & pause")
$y=MsgBox (4,$f&"的短文件名是",$Sn&@CRLF&"是否要删除畸形目录?")
If $y = 6 Then RunWait(@ComSpec & ' /C rd /q /s "' & $f & '."', '', 0)
If $y = 7 Then Exit

Func getShutName ($filename)
        $split = StringReplace ($filename,".","")
        $split = StringReplace ($split," ","")
        MsgBox (0,"",$split)
        For $i=1 To 6 
                $fShutname = StringLeft($split,6) & "~"&$i
                $filepath = @ScriptDir
                If StringRight ($filepath,1) == "" Then $filepath = StringTrimRight ($filepath,1)
                $ln = FileGetLongName ($fShutname,1)
                 MsgBox (0,"",$fShutname&@CRLF&$ln&@CRLF&$filepath&""&$filename)
                If $ln == $filepath&""&$filename Then
                        Return ($fShutname)
                EndIf
                If $ln = $fShutname Then Return "没有获取短文件名"
        Next
EndFunc

评分

参与人数 1威望 +10 收起 理由
afan + 10 谢谢帮忙

查看全部评分

发表于 2010-3-31 22:39:39 | 显示全部楼层
回复 43# afan

呵呵,这个倒是有用,有空我再研究一下,如果是真的,那就好办了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-24 22:27 , Processed in 0.077115 second(s), 17 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表