![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 04:47 |
共 47,811 主题排行 / 349,897 发帖 / 今日 2 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已结]有没有变量是可以直接获得当前目录名(不含路径) |
| 可打印版本 1,081 / 10 |
| 第1楼 cgi | 发表于 2008-07-03 09:01 |
| 初级用户 发帖 14 积分 38 | |
|
[已结]有没有变量是可以直接获得当前目录名(不含路径) 请问有没有变量是可以直接获得当前目录名(不含路径)
[ Last edited by HAT on 2008-10-28 at 21:01 ] |
|
| 第2楼 HAT | 发表于 2008-07-03 09:08 |
| 版主 发帖 5,017 积分 9,023 | |
| 第3楼 hongewuyan | 发表于 2008-07-03 11:33 |
| 初级用户 发帖 29 积分 65 | |
|
啊。。。看了HAT的代码才知道 %0 也可以直接拿来这样扩展的,受教了。
不过HAT的代码似乎对于二级以上的路径有问题,会把整个路径里面的\去除后连在一起。 我之前搞过一个剥取当前路径的批处理,代码比较啰嗦,不知道有没有更简洁的方法: @echo off set curpath=%~p0 :loop for /f "tokens=1* delims=\" %%i in ('echo %curpath%') do ( set a=%%i set b=%%j ) set curpath=%b% echo %b% | find /i "\" > nul if errorlevel 1 goto ok if errorlevel 0 goto loop :ok echo %a% |
|
| 第4楼 26933062 | 发表于 2008-07-03 11:33 |
| 银牌会员 发帖 879 积分 2,268 | |
|
直接的变量没有,必须进行处理。
[ Last edited by 26933062 on 2008-7-3 at 11:47 AM ] |
|
| 第5楼 HAT | 发表于 2008-07-03 12:03 |
| 版主 发帖 5,017 积分 9,023 | |
| 第6楼 26933062 | 发表于 2008-07-03 12:07 |
| 银牌会员 发帖 879 积分 2,268 | |
|
5楼的方法在根目录下会没有显示
|
|
| 第7楼 ngd | 发表于 2008-07-03 12:46 |
| 中级用户 发帖 108 积分 312 | |
| 第8楼 cgi | 发表于 2008-07-03 13:12 |
| 初级用户 发帖 14 积分 38 | |
|
多谢各位前辈
|
|
| 第9楼 terse | 发表于 2008-07-03 15:26 |
| 银牌会员 发帖 946 积分 2,404 | |
|
@echo off
for /f "delims=" %%a in ("%cd%") do if "%%~na"=="" (echo %%~dpa)else echo %%~na pause |
|
| 第10楼 qwd | 发表于 2008-07-05 00:19 |
| 初级用户 发帖 56 积分 161 | |
|
@echo off
echo %~nx0 pause |
|
| 第11楼 pighead123 | 发表于 2008-10-28 18:56 |
| 初级用户 发帖 23 积分 42 | |
|
cls
setlocal enabledelayedexpansion for /f "tokens=1,2* delims=\" %%i in ('echo %~p0') do ( set pathtemp=%%i if not "%%j"=="" set pathtemp=%%j echo !pathtemp! ) 处理两层路径的代码 需要再改 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |