中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]将文件夹及文件中文名称转换成拼音名称
作者:
标题: [求助]将文件夹及文件中文名称转换成拼音名称 上一主题 | 下一主题
hgx126
初级用户





积分 100
发帖 80
注册 2008-9-12
状态 离线
『楼 主』:  [求助]将文件夹及文件中文名称转换成拼音名称

请教高手,请帮我写一批处理,将某一文件夹下的所有文件夹及文件中文(汉字)名称转换成拼音名称。

先谢过了。

[ Last edited by hgx126 on 2010-4-12 at 19:14 ]

2010-4-12 19:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
newxso
初级用户

l i u s s


积分 73
发帖 101
注册 2008-9-17
来自 GZ
状态 离线
『第 2 楼』:  VBS 把所有文件夹和文件的中文名更改为对应的拼音名

粗略组织了一下,利用3楼中的代码为核心,可以完全用 VBS 来完成把所有文件夹和文件的中文名改为对应的拼音名。以下代码对需更改的名称有点要求:原名称之中没有空格、原名称之中全为中文。
Dim PinYin_Number,PinYin_String,PinYinStr

PinYin_Number = Array(20319,20317,20304,20295,20292,20283,20265,20257,20242,_
20230,20051,20036,20032,20026,20002,19990,19986,19982,19976,19805,19784,19775,_
19774,19763,19756,19751,19746,19741,19739,19728,19725,19715,19540,19531,19525,_
19515,19500,19484,19479,19467,19289,19288,19281,19275,19270,19263,19261,19249,_
19243,19242,19238,19235,19227,19224,19218,19212,19038,19023,19018,19006,19003,_
18996,18977,18961,18952,18783,18774,18773,18763,18756,18741,18735,18731,18722,_
18710,18697,18696,18526,18518,18501,18490,18478,18463,18448,18447,18446,18239,_
18237,18231,18220,18211,18201,18184,18183,18181,18012,17997,17988,17970,17964,_
17961,17950,17947,17931,17928,17922,17759,17752,17733,17730,17721,17703,17701,_
17697,17692,17683,17676,17496,17487,17482,17468,17454,17433,17427,17417,17202,_
17185,16983,16970,16942,16915,16733,16708,16706,16689,16664,16657,16647,16474,_
16470,16465,16459,16452,16448,16433,16429,16427,16423,16419,16412,16407,16403,_
16401,16393,16220,16216,16212,16205,16202,16187,16180,16171,16169,16158,16155,_
15959,15958,15944,15933,15920,15915,15903,15889,15878,15707,15701,15667,15661,_
15659,15652,15681,15640,15631,15625,15454,15448,15436,15435,15419,15416,15408,_
15394,15385,15377,15375,15369,15363,15362,15183,15180,15165,15158,15153,15150,_
15149,15144,15143,15141,15140,15139,15128,15121,15119,15117,15110,15109,14941,_
14937,14933,14929,14928,14926,14930,14922,14921,14914,14908,14902,14894,14889,_
14882,14873,14871,14857,14678,14674,14670,14668,14663,14654,14645,14630,14594,_
14429,14407,14399,14384,14379,14368,14355,14353,14345,14170,14159,14151,14149,_
14145,14140,14137,14135,14125,14123,14122,14112,14109,14099,14097,14094,14092,_
14090,14087,14083,13917,13914,13910,13907,13906,13905,13896,13894,13878,13870,_
13859,13847,13831,13658,13611,13601,13406,13404,13400,13398,13395,13391,13387,_
13383,13367,13359,13356,13343,13340,13329,13326,13318,13147,13138,13120,13107,_
13096,13095,13091,13076,13068,13063,13060,12888,12875,12871,12860,12858,12852,_
12849,12838,12831,12829,12812,12802,12607,12597,12594,12585,12556,12359,12346,_
12320,12300,12120,12099,12089,12074,12067,12058,12039,11867,11861,11847,11831,_
11798,11781,11604,11589,11536,11358,11340,11339,11324,11303,11097,11077,11067,_
11055,11052,11045,11041,11038,11024,11020,11019,11018,11014,10838,10832,10815,_
10800,10790,10780,10764,10587,10544,10533,10519,10331,10329,10328,10322,10315,_
10309,10307,10296,10281,10274,10270,10262,10260,10256,10254,0)

PinYin_String = Array("a","ai","an","ang","ao","ba","bai","ban","bang","bao","bei",_
"ben","beng","bi","bian","biao","bie","bin","bing","bo","bu","ca","cai","can","cang",_
"cao","ce","ceng","cha","chai","chan","chang","chao","che","chen","cheng","chi",_
"chong","chou","chu","chuai","chuan","chuang","chui","chun","chuo","ci","cong","cou",_
"cu","cuan","cui","cun","cuo","da","dai","dan","dang","dao","de","deng","di","dian",_
"diao","die","ding","diu","dong","dou","du","duan","dui","dun","duo","e","en","er",_
"fa","fan","fang","fei","fen","feng","fo","fou","fu","ga","gai","gan","gang","gao",_
"ge","gei","gen","geng","gong","gou","gu","gua","guai","guan","guang","gui","gun","guo",_
"ha","hai","han","hang","hao","he","hei","hen","heng","hong","hou","hu","hua","huai",_
"huan","huang","hui","hun","huo","ji","jia","jian","jiang","jiao","jie","jin","jing",_
"jiong","jiu","ju","juan","jue","jun","ka","kai","kan","kang","kao","ke","ken","keng",_
"kong","kou","ku","kua","kuai","kuan","kuang","kui","kun","kuo","la","lai","lan","lang",_
"lao","le","lei","leng","li","lia","lian","liang","liao","lie","lin","ling","liu","long",_
"lou","lu","luan","lue","lun","luo","lv","ma","mai","man","mang","mao","me","mei","men",_
"meng","mi","mian","miao","mie","min","ming","miu","mo","mou","mu","na","nai","nan",_
"nang","nao","ne","nei","nen","neng","ni","nian","niang","niao","nie","nin","ning","niu",_
"nong","nu","nuan","nue","nuo","nv","o","ou","pa","pai","pan","pang","pao","pei","pen",_
"peng","pi","pian","piao","pie","pin","ping","po","pu","qi","qia","qian","qiang","qiao",_
"qie","qin","qing","qiong","qiu","qu","quan","que","qun","ran","rang","rao","re","ren",_
"reng","ri","rong","rou","ru","ruan","rui","run","ruo","sa","sai","san","sang","sao",_
"se","sen","seng","sha","shai","shan","shang","shao","she","shen","sheng","shi","shou",_
"shu","shua","shuai","shuan","shuang","shui","shun","shuo","si","song","sou","su","suan",_
"sui","sun","suo","ta","tai","tan","tang","tao","te","teng","ti","tian","tiao","tie",_
"ting","tong","tou","tu","tuan","tui","tun","tuo","wa","wai","wan","wang","wei","wen","weng","wo",_
"wu","xi","xia","xian","xiang","xiao","xie","xin","xing","xiong","xiu","xu","xuan","xue","xun","ya",_
"yan","yang","yao","ye","yi","yin","ying","yo","yong","you","yu","yuan","yue","yun","za","zai","zan",_
"zang","zao","ze","zei","zen","zeng","zha","zhai","zhan","zhang","zhao","zhe","zhen","zheng","zhi","zhong",_
"zhou","zhu","zhua","zhuai","zhuan","zhuang","zhui","zhun","zhuo","zi","zong","zou","zu","zuan","zui","zun",_
"zuo","")



FolderTree("c:\Test")

Function FolderTree(sPath)   
    Set oFso = CreateObject("Scripting.FileSystemObject")   
    Set oFolder = oFso.GetFolder(sPath)  
    Set oSubFolders = oFolder.SubFolders
    Set oFiles = oFolder.Files   
      
    For Each oSubFolder In oSubFolders   
          Name = oSubFolder.Name
          if Asc(Name) < 0 then
              Convert(Name)
              oFso.MoveFolder Name, PinYinStr
          end if
    Next

    For Each oFile In oFiles   
          Name = oFso.GetBaseName(oFile.Path)
          Ext = oFso.GetExtensionName(oFile.Path)
          if Asc(Name) < 0 then
              Convert(Name)
              NewName = PinYinStr & "." & Ext
              oFso.MoveFile oFile.Name, NewName
          end if
    Next
End Function  

Function Getpinyin(index)
        If Eval(index = "0x1534") Then         
                Getpinyin = "yan"               
        End If        
        If (index > "0x4F5F") Or (index < "0x2807") Then        
                Getpinyin = ""               
        End If      
        i = 0        
        While PinYin_Number(i) >= index        
                i = i+1            
        Wend            
        Getpinyin = PinYin_String(i-1)   
End Function

Function  vbAsc(str)
        vbAsc = Asc(str)         
End  function

Function Convert(str)
        strTemp = ""
        For i = 1 To Len(str)
                strTemp = strTemp + Getpinyin((0-vbAsc(cutchar(str,i))))
        Next               
        PinYinStr = strTemp
End Function

Function cutchar(str,i)        
        tstr = Right(str,Len(str) - i +1)        
        cutchar = Left(tstr,1)        
End Function
[ Last edited by newxso on 2010-4-14 at 21:52 ]

2010-4-12 21:09
查看资料  发短消息 网志   编辑帖子  回复  引用回复
newxso
初级用户

l i u s s


积分 73
发帖 101
注册 2008-9-17
来自 GZ
状态 离线
『第 3 楼』:  VBS汉字转拼音(转)


Dim PinYin_Number,PinYin_String,PinYinStr

PinYin_Number = Array(20319,20317,20304,20295,20292,20283,20265,20257,20242,_
20230,20051,20036,20032,20026,20002,19990,19986,19982,19976,19805,19784,19775,_
19774,19763,19756,19751,19746,19741,19739,19728,19725,19715,19540,19531,19525,_
19515,19500,19484,19479,19467,19289,19288,19281,19275,19270,19263,19261,19249,_
19243,19242,19238,19235,19227,19224,19218,19212,19038,19023,19018,19006,19003,_
18996,18977,18961,18952,18783,18774,18773,18763,18756,18741,18735,18731,18722,_
18710,18697,18696,18526,18518,18501,18490,18478,18463,18448,18447,18446,18239,_
18237,18231,18220,18211,18201,18184,18183,18181,18012,17997,17988,17970,17964,_
17961,17950,17947,17931,17928,17922,17759,17752,17733,17730,17721,17703,17701,_
17697,17692,17683,17676,17496,17487,17482,17468,17454,17433,17427,17417,17202,_
17185,16983,16970,16942,16915,16733,16708,16706,16689,16664,16657,16647,16474,_
16470,16465,16459,16452,16448,16433,16429,16427,16423,16419,16412,16407,16403,_
16401,16393,16220,16216,16212,16205,16202,16187,16180,16171,16169,16158,16155,_
15959,15958,15944,15933,15920,15915,15903,15889,15878,15707,15701,15667,15661,_
15659,15652,15681,15640,15631,15625,15454,15448,15436,15435,15419,15416,15408,_
15394,15385,15377,15375,15369,15363,15362,15183,15180,15165,15158,15153,15150,_
15149,15144,15143,15141,15140,15139,15128,15121,15119,15117,15110,15109,14941,_
14937,14933,14929,14928,14926,14930,14922,14921,14914,14908,14902,14894,14889,_
14882,14873,14871,14857,14678,14674,14670,14668,14663,14654,14645,14630,14594,_
14429,14407,14399,14384,14379,14368,14355,14353,14345,14170,14159,14151,14149,_
14145,14140,14137,14135,14125,14123,14122,14112,14109,14099,14097,14094,14092,_
14090,14087,14083,13917,13914,13910,13907,13906,13905,13896,13894,13878,13870,_
13859,13847,13831,13658,13611,13601,13406,13404,13400,13398,13395,13391,13387,_
13383,13367,13359,13356,13343,13340,13329,13326,13318,13147,13138,13120,13107,_
13096,13095,13091,13076,13068,13063,13060,12888,12875,12871,12860,12858,12852,_
12849,12838,12831,12829,12812,12802,12607,12597,12594,12585,12556,12359,12346,_
12320,12300,12120,12099,12089,12074,12067,12058,12039,11867,11861,11847,11831,_
11798,11781,11604,11589,11536,11358,11340,11339,11324,11303,11097,11077,11067,_
11055,11052,11045,11041,11038,11024,11020,11019,11018,11014,10838,10832,10815,_
10800,10790,10780,10764,10587,10544,10533,10519,10331,10329,10328,10322,10315,_
10309,10307,10296,10281,10274,10270,10262,10260,10256,10254,0)


PinYin_String = Array("a","ai","an","ang","ao","ba","bai","ban","bang","bao","bei",_
"ben","beng","bi","bian","biao","bie","bin","bing","bo","bu","ca","cai","can","cang",_
"cao","ce","ceng","cha","chai","chan","chang","chao","che","chen","cheng","chi",_
"chong","chou","chu","chuai","chuan","chuang","chui","chun","chuo","ci","cong","cou",_
"cu","cuan","cui","cun","cuo","da","dai","dan","dang","dao","de","deng","di","dian",_
"diao","die","ding","diu","dong","dou","du","duan","dui","dun","duo","e","en","er",_
"fa","fan","fang","fei","fen","feng","fo","fou","fu","ga","gai","gan","gang","gao",_
"ge","gei","gen","geng","gong","gou","gu","gua","guai","guan","guang","gui","gun","guo",_
"ha","hai","han","hang","hao","he","hei","hen","heng","hong","hou","hu","hua","huai",_
"huan","huang","hui","hun","huo","ji","jia","jian","jiang","jiao","jie","jin","jing",_
"jiong","jiu","ju","juan","jue","jun","ka","kai","kan","kang","kao","ke","ken","keng",_
"kong","kou","ku","kua","kuai","kuan","kuang","kui","kun","kuo","la","lai","lan","lang",_
"lao","le","lei","leng","li","lia","lian","liang","liao","lie","lin","ling","liu","long",_
"lou","lu","luan","lue","lun","luo","lv","ma","mai","man","mang","mao","me","mei","men",_
"meng","mi","mian","miao","mie","min","ming","miu","mo","mou","mu","na","nai","nan",_
"nang","nao","ne","nei","nen","neng","ni","nian","niang","niao","nie","nin","ning","niu",_
"nong","nu","nuan","nue","nuo","nv","o","ou","pa","pai","pan","pang","pao","pei","pen",_
"peng","pi","pian","piao","pie","pin","ping","po","pu","qi","qia","qian","qiang","qiao",_
"qie","qin","qing","qiong","qiu","qu","quan","que","qun","ran","rang","rao","re","ren",_
"reng","ri","rong","rou","ru","ruan","rui","run","ruo","sa","sai","san","sang","sao",_
"se","sen","seng","sha","shai","shan","shang","shao","she","shen","sheng","shi","shou",_
"shu","shua","shuai","shuan","shuang","shui","shun","shuo","si","song","sou","su","suan",_
"sui","sun","suo","ta","tai","tan","tang","tao","te","teng","ti","tian","tiao","tie",_
"ting","tong","tou","tu","tuan","tui","tun","tuo","wa","wai","wan","wang","wei","wen","weng","wo",_
"wu","xi","xia","xian","xiang","xiao","xie","xin","xing","xiong","xiu","xu","xuan","xue","xun","ya",_
"yan","yang","yao","ye","yi","yin","ying","yo","yong","you","yu","yuan","yue","yun","za","zai","zan",_
"zang","zao","ze","zei","zen","zeng","zha","zhai","zhan","zhang","zhao","zhe","zhen","zheng","zhi","zhong",_
"zhou","zhu","zhua","zhuai","zhuan","zhuang","zhui","zhun","zhuo","zi","zong","zou","zu","zuan","zui","zun",_
"zuo","")


Convert(WScript.Arguments(0))
Wscript.Echo PinYinStr


Function Getpinyin(index)
        If Eval(index = "0x1534") Then         
                Getpinyin = "yan"               
        End If        
        If (index > "0x4F5F") Or (index < "0x2807") Then        
                Getpinyin = ""               
        End If      
        i = 0        
        While PinYin_Number(i) >= index        
                i = i+1            
        Wend            
        Getpinyin = PinYin_String(i-1)   
End Function


Function  vbAsc(str)
        vbAsc = Asc(str)         
End  function


Function Convert(str)
        strTemp = ""
        For i = 1 To Len(str)
                strTemp = strTemp + Getpinyin((0-vbAsc(cutchar(str,i))))
        Next               
        PinYinStr = strTemp
End Function


Function cutchar(str,i)        
        tstr = Right(str,Len(str) - i +1)        
        cutchar = Left(tstr,1)        
End Function


2010-4-12 21:09
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hgx126
初级用户





积分 100
发帖 80
注册 2008-9-12
状态 离线
『第 4 楼』:  

兄弟,能否整理成一个完整的东东?我是菜鸟一个。

2010-4-13 17:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: