比如要运行移动盘中的一个软件,但是在不同的机子上盘符会不同!
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
set a=%0
echo %a:~0,2%>temp.txt
@echo off
echo 当前路径是:%cd%
echo 当前盘符是:%cd:~0,1%
pause
@echo off
for %%i in (.) do set var=%%~di
echo 当前盘符是:%var:~0,1%
pause
@echo off
set a=%~0
echo 当前盘符为:%a:~0,1%
pause
| 评分人 | 分数 | 时间 |
|---|---|---|
| redtek | +3 | 2006-11-26 00:02 |
Originally posted by 不得不爱 at 2006-11-17 18:38:
%~0不会得到带引号的当前路径啊
当然,还有其他的方案,一般都是用for语句来提取返回值特定位上的字符,而无一例外的都需要通过截取字符的方式来实现。
@echo off
set a=%~d0
echo 当前盘符为:%a::=%
pause
hxuan?表ー: 2006-11-24 15:13
- @echo off
- for /f "usebackq skip=1 eol=;" %%i in (`"echo exit|%comspec% /k prompt $N$_;"`) do set "d=%%i"
- echo 当前盘符为:%d%
- pause
hxuan?表ー: 2006-11-24 15:19
- @echo off
- for /f "usebackq skip=1 eol=; delims=" %%i in (`"echo exit|%comspec% /k prompt $N$_;"`) do set "aaa=%%i"
- echo %aaa%
- for /f "usebackq skip=1 eol=; delims=" %%i in (`"echo exit|%comspec% /k prompt $D$_;"`) do set "aaa=%%i"
- echo %aaa%
- for /f "usebackq skip=1 eol=; delims=" %%i in (`"echo exit|%comspec% /k prompt $E$_;"`) do set "aaa=%%i"
- echo %aaa%
- for /f "usebackq skip=1 eol=; delims=" %%i in (`"echo exit|%comspec% /k prompt $P$_;"`) do set "aaa=%%i"
- echo %aaa%
- for /f "usebackq skip=1 eol=; delims=" %%i in (`"echo exit|%comspec% /k prompt $T$_;"`) do set "aaa=%%i"
- echo %aaa%
- for /f "usebackq skip=1 eol=; delims=" %%i in (`"echo exit|%comspec% /k prompt $V$_;"`) do set "aaa=%%i"
- echo %aaa%
- pause
| 评分人 | 分数 | 时间 |
|---|---|---|
| namejm | +2 | 2006-11-25 09:55 |
prompt 属于比较冷门的命令了,却还有如此强悍的功能,值得各位重视。不错不错,给 hxuan999 加分奖励。