中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]请问P处能不能得到一个文件名的短文件名
« [1] [2] »
作者:
标题: [求助]请问P处能不能得到一个文件名的短文件名 上一主题 | 下一主题
ttj36
初级用户





积分 80
发帖 37
注册 2008-2-6
状态 离线
『楼 主』:  [求助]请问P处能不能得到一个文件名的短文件名

哪个高手知道不,
高手们,我都看不懂了,我打个比方,
我要得到D盘下一个文件的短文件名,要在CMD里显示出它的短文件名字,
谢谢在面几位。顺便问一下
     xx..\这种件夹的短名怎么得到,用下面的方法不行哦

[ Last edited by ttj36 on 2008-8-11 at 02:49 PM ]

2008-8-10 18:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 2 楼』:  

for  %%i in (*) do echo %%~snxi



简单!简单!再简单!
2008-8-10 18:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ttj36
初级用户





积分 80
发帖 37
注册 2008-2-6
状态 离线
『第 3 楼』:  

我怎么用不来,请问如何使用,

2008-8-10 18:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 4 楼』:  

%~sI        - expanded path contains short names only

The modifiers can be combined to get compound results:

    %~dpI       - expands %I to a drive letter and path only
    %~nxI       - expands %I to a file name and extension only
    %~fsI       - expands %I to a full path name with short names only
    %~dp$PATH:I - searches the directories listed in the PATH
                   environment variable for %I and expands to the
                   drive letter and path of the first one found.
    %~ftzaI     - expands %I to a DIR like output line



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-8-10 18:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 5 楼』:  


@echo off
for  %%i in ("C:\test\abcdefghijk.txt") do echo %%~snxi




2008-8-11 01:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ttj36
初级用户





积分 80
发帖 37
注册 2008-2-6
状态 离线
『第 6 楼』:  

谢谢,好象得不到xx..\这种件夹的短名

2008-8-11 11:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 7 楼』:  

可以



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2008-8-11 11:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kioskboy
初级用户





积分 153
发帖 103
注册 2008-3-27
状态 离线
『第 8 楼』:  

FOR /F "delims==" %i IN ('dir /b') DO @echo %~si

2008-8-11 12:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 9 楼』:  Re 6楼

是这个意思吗?
@echo off
for /f "tokens=5 delims= " %%a in ('dir /x ^| findstr xxxxxxxxx.') do echo %%a




2008-8-14 23:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ttj36
初级用户





积分 80
发帖 37
注册 2008-2-6
状态 离线
『第 10 楼』:  

楼上的这位大哥,好够象不行哦,不行得到SD..的短名

[ Last edited by ttj36 on 2008-8-15 at 07:48 PM ]

2008-8-15 19:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 11 楼』:  

Q: 为什么不行啊?
A: 去电线杆上找个老军医的手机,他是专治+包治这个的。如果治疗周期较长,建议列出你的测试环境、测试用例、出错信息,供大家帮助你解决问题。



2008-8-15 20:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ttj36
初级用户





积分 80
发帖 37
注册 2008-2-6
状态 离线
『第 12 楼』:  

你试试看,我在D盘,你也可以建个MD d:\SD..\  文件夹,你得到短名看看,

[ Last edited by ttj36 on 2008-8-15 at 10:28 PM ]

2008-8-15 22:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 13 楼』:  

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

D:\>md sdsdsdsdsd..\

D:\>for /f "tokens=4 delims= " %a in ('dir /x ^| findstr "sdsdsdsdsd."') do @echo %a
SDSDSD~1



2008-8-15 22:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ttj36
初级用户





积分 80
发帖 37
注册 2008-2-6
状态 离线
『第 14 楼』:  

for /f "tokens=4 delims= " %a in ('dir /x ^| findstr "d:\sd."') do @echo %a
在BAT里,怎么不行,
而且我得到2个,因为我建了2个这种文件夹一个是,是ASDF.  SD.运行长的那个得到一个ASDF~1 ,而运行短的,得到2个,哈哈

[ Last edited by ttj36 on 2008-8-15 at 10:57 PM ]

2008-8-15 22:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 15 楼』:  

cmd里面for的控制变量用一个百分号
bat里面for的控制变量用两个百分号

建议复习一下批处理基础教程^_^



2008-8-15 23:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: