标题: [文件操作] [已解决]批处理怎样获取当前目录名称、非完整路径、父文件夹名? [打印本页]
作者: TonyW 时间: 2009-2-28 17:21 标题: [已解决]批处理怎样获取当前目录名称、非完整路径、父文件夹名?
首先,小弟不知道该求助帖发在这里对不对。在外面找了找,并没有求助板块。也就发在这里啦。如果不对请见谅。。
=====================================================================================
问题是这样的:
写一个批处理,来显示当前目录的名称。比如该批处理放在了桌面上,路径是:C:\Documents and Settings\Administrator\桌面 .但我要显示的是:该路径有多少个字符?其中包含多少个"\" ?最后才显示出“桌面”
这样。。但要有通用性。即该批处理放到任何地方它都能起做作用。如:d:\1\2\3\4\123 最后的显示是:123
也就是获取当前路径.最后一个以 " \ " 隔开的右边的字符串
这个是我写了一半后写不出来啦!!- @echo off
- for /f "tokens=*" %%i in ('cd') do (
- echo %%i
- set k=%%i)
- :d
- if not "%k%"=="" (
- set /a num+=1
- set k=%k:~1%
- goto d)
- echo 这个路径有%num%个字符
- pause
复制代码
PS:这个问题已经困扰了我两天半的时间,一直想破头都没有想出来。
虽然有头绪但始终不能成功。我觉得再这样下去也是没有办法的。
本人的批处理实在差。。给各位添麻烦拉。不好意思!!
表达能力比较差,希望各位能看清我的问题。。。
各位大哥,解答完小弟的问题后,最要紧的是麻烦再动一下手指。把思路也献上!!
祝各位开心快乐!家庭幸福!
作者: yslyxqysl 时间: 2009-2-28 17:32
for %%i in ("%cd%") do echo %%~ni
作者: namejm 时间: 2009-2-28 17:39
给你一段演示代码:- @echo off
- set /a num1=0,num2=0
- set "str=%cd%"
-
- :loop
- set /a num1+=1
- if "%str:~0,1%"=="\" set /a num2+=1
- set "str=%str:~1%"
- if defined str goto loop
-
- echo 当前路径为:"%cd:"=%"
- echo 共计 %num1% 个字符,其中字符"\"有 %num2% 个
- for %%i in ("%cd%") do echo 当前目录名为:"%%~nxi"
- pause
复制代码
作者: Batcher 时间: 2009-2-28 18:17
- @echo off
- for %%i in ("%~dp0\.") do (
- echo 该批处理的父文件夹是 %%~ni
- )
- pause
复制代码
作者: wxcute 时间: 2009-2-28 21:26
用 %~nx1 防止目录名含点- @echo off
- call :CurDIR "%cd%"
- pause
- goto :eof
- :CurDIR
- echo %~nx1
复制代码
作者: defanive 时间: 2009-2-28 22:22
LS代码好,用了call,这样就可以节省一次for。。。
作者: CrLf 时间: 2011-8-25 22:54
回复 6# defanive
for 的效率远高于 call...
作者: defanive 时间: 2011-8-25 23:25
回复 7# CrLf
我说怎么没见过这个帖子。。。
一看原来是09年的啊,还看到了jm的回复。。
作者: CrLf 时间: 2011-8-25 23:43
回复 8# defanive
晕,估计这主题被某位版主提升了,我在第一页看到才回复了的...
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |