|
radem
高级用户
    CMD感染者
积分 691
发帖 383
注册 2008-5-23
状态 离线
|
『楼 主』:
[求助]如何才能获得相同的短名?
D:\批处理\test目录下有一畸形文件“111...”
用dir /x显示为“111~1”
但用echo %~s1显示的是“111111”
请问怎么样echo才能打印出“111~1”呢?
|

 |
|
2008-8-27 14:05 |
|
|
HAT
版主
       
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
2 楼』:
@echo off
for /f "tokens=5 delims= " %%a in ('dir /x 111*^|findstr "111.."') do echo %%a
|

 |
|
2008-8-27 14:09 |
|
|
radem
高级用户
    CMD感染者
积分 691
发帖 383
注册 2008-5-23
状态 离线
|
『第
3 楼』:
这样还是显示“111...”
显示不了短名
|

 |
|
2008-8-27 14:17 |
|
|
radem
高级用户
    CMD感染者
积分 691
发帖 383
注册 2008-5-23
状态 离线
|
『第
4 楼』:
哈哈!!
tokens=4就可以了,谢谢!
另外,如果把随意一个文件拖到这个P文件就能显示它的短名又怎么办呢?
[ Last edited by radem on 2008-8-27 at 02:26 PM ]
|

 |
|
2008-8-27 14:20 |
|
|
HAT
版主
       
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
5 楼』:
可能是我的系统日期/时间格式和你的不一样,我这里需要tokens=5,这个没关系,根据自己实际情况更改就是了。
|

 |
|
2008-8-27 14:23 |
|
|
radem
高级用户
    CMD感染者
积分 691
发帖 383
注册 2008-5-23
状态 离线
|
『第
6 楼』:
HAT大哥,如果把随意一个文件拖到这个P文件就能显示它的短名又怎么办呢?
|

 |
|
2008-8-27 14:29 |
|
|
HAT
版主
       
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
7 楼』:
Re 6楼
@echo off
set file=%1
set file=%file:.=%
for /f "tokens=5 delims= " %%a in ('dir /x "%file%*"^|findstr "%1"') do echo %%a
pause
|

 |
|
2008-8-27 15:36 |
|
|
radem
高级用户
    CMD感染者
积分 691
发帖 383
注册 2008-5-23
状态 离线
|
『第
8 楼』:
Quote: | in ('dir /x 111*^|findstr "111.."') |
|
其中“111*”是怎样定义的?
|

 |
|
2008-8-27 19:59 |
|
|
HAT
版主
       
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
9 楼』:
7楼的代码有111*?
|

 |
|
2008-8-27 20:09 |
|
|
radem
高级用户
    CMD感染者
积分 691
发帖 383
注册 2008-5-23
状态 离线
|
『第
10 楼』:
换句话说
dir /x 后面应该怎样定义的?
|

 |
|
2008-8-27 20:12 |
|
|
HAT
版主
       
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
11 楼』:
dir /x 后面跟文件夹名或者文件名,定义什么?
|

 |
|
2008-8-27 20:17 |
|