afan
发表于 2010-3-31 21:58:11
3.3.5.6
aaa.bb.
aa.abb.
aaabb..
这些都对
卫和谐
发表于 2010-3-31 21:59:58
用DIR /X命令,有时候也看不到短文件名的,不知道为什么???
afan
发表于 2010-3-31 22:04:00
用DIR /X命令,有时候也看不到短文件名的,不知道为什么???
卫和谐 发表于 2010-3-31 21:59 http://www.autoitx.com/images/common/back.gif
这个可能性没有吧?能否举例
卫和谐
发表于 2010-3-31 22:07:25
本帖最后由 卫和谐 于 2010-3-31 22:08 编辑
比如123的文件夹!或者123.au3或者123456等!
afan
发表于 2010-3-31 22:07:27
回复 28# C.L
afan
发表于 2010-3-31 22:08:09
比如123的文件夹!
卫和谐 发表于 2010-3-31 22:07 http://www.autoitx.com/images/common/back.gif
123 不用短啊~ 已经够短了, 8.3规则
3mile
发表于 2010-3-31 22:11:59
vista下的短文件命名方式应该有了变化,上图:
afan
发表于 2010-3-31 22:13:29
vista下的短文件命名方式应该有了变化,上图:
3mile 发表于 2010-3-31 22:11 http://www.autoitx.com/images/common/back.gif
应该不会,短文件名应该是dos的命名规范,dos规则没变就应该一样~
C.L
发表于 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 http://www.autoitx.com/images/common/back.gif
我测试这些,也没有短文件名啊!
afan
发表于 2010-3-31 22:17:37
我测试这些,也没有短文件名啊!
卫和谐 发表于 2010-3-31 22:16 http://www.autoitx.com/images/common/back.gif
你没有创建这些文件夹吧?贴个图看看~
afan
发表于 2010-3-31 22:20:21
回复 40# 卫和谐
12345678.123-- 无
12345678.1234 -- 123456~2.123
123456789.123 -- 123456~1.123
afan
发表于 2010-3-31 22:31:10
回复 39# C.L
网上搜的,不知道有用不
在超过4个文件的情况下.....
第5个文件开始..
在文件头偏移量F3处开始到偏移量101位置,好像是系统随机生成的字符串....
这个字符串就是8.3的文件名...
好像只有前两个字符和原文件一样....
C.L
发表于 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
C.L
发表于 2010-3-31 22:39:39
回复 43# afan
呵呵,这个倒是有用,有空我再研究一下,如果是真的,那就好办了。
页:
1
2
[3]
4
5
6
7
8
9
10