批处理获取当前目录名
如本批处理所在的当前目录是:"C:\Documents and Settings\All Users"要求只显示当前目录名:All Users [code]@echo off
call :get "%cd%"
pause>nul
exit
:get
echo %~n1[/code]
[[i] 本帖最后由 梦想种子 于 2008-3-29 20:55 编辑 [/i]] 参考二楼兄弟的思路:[code]@echo off
for %%i in ("%cd%") do echo %%~ni
pause[/code]笨方法:[code]@echo off
set a=%cd: =:%
set a=%a:\= %
for %%j in (%a%) do (set a=%%j)
set a=%a::= %
echo %a%
pause[/code] 呵呵,笨办法还有[code]@echo off
set "path=C:\Documents and Settings\All Users"
for /l %%i in (1 1 10) do call set "path=%%path:*\=%%"
echo %path%
pause>nul[/code]
再来一个
[code]@echo offset "path=C:\Documents and Settings\All Users"
set "path=%path: =#%"
set "path=%path:\= %"
for %%i in (%path%) do set "path=%%i"
echo %path:#= %
pause>nul[/code] 这么热闹,我也来一个
:[code]@echo off
call :loop "c:\1334 \459sdf fdh8\40958345\aaa.bbb.ccc"
echo %a%
pause&exit
:loop
for /f "tokens=1* delims=\" %%a in ("%~1") do (
set a=%%a
if not "%%b"=="" call :loop "%%b"
)
goto :eof[/code]
还有更“蠢”的
注:以下“函数”并不完善,请勿随便套用![code]@echo off & setlocal enabledelayedexpansionset "path=C:\Documents and Settings\All Users"
call :GetTheStr "%path%"
echo %res%
pause>nul
:GetTheStr str
set "var=%~1"
if not "%var:~-1%"=="\" (
set path=%var:~0,-1%
set res=%var:~-1%%res%
call :GetTheStr "!path!"
)[/code] 呵呵,搞的跟 随风兄的机理一样了!
不过比你的还“傻”,哈哈 呵呵,好热闹啊. 补充2楼不足之处
[code]@echo off
call :get "%cd%.tmp"
pause&exit
:get
echo %~n1[/code]
回复 10楼 的帖子
噢,对...否则遇到名字类似“bathome.files”的文件夹时就会错误输出。 学习学习中。嘿 [b]回复 4楼 的帖子[/b]path是系统环境变量,不要随便用它作为一般变量名哦,小心无意中惹出麻烦来而难以检测(当然只是影响这个bat,不会改变系统设置)
[b]回复 10楼 的帖子[/b]
无需%cd%.tmp,下面可以直接用echo %~nx1 [code]
@echo off
set "a=%cd%"
:loop
set "v=%a:~0,1%"
if "%v%"=="\" set /a n+=1
set a=%a:~1%
if "%a%"=="" goto xianshi
goto loop
:xianshi
set /a n+=1
for /f "tokens=%n% delims=\" %%i in ("%cd%") do echo %%i&pause>nul
[/code] C:\1\2\3\
for %%i in (.) do @echo %%~ni
pause
取3
for %%i in (..) do @echo %%~ni
pause
取2 突然要用到这个命令,没有学批处理,只好学习了,突然觉得批处理很重要啊。 [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=25234&ptid=785]14#[/url] [i]keen[/i] [/b]
不能显示根目录的... 学习学习啦~~好开心 现在才懂,《一日一教学》和《for入门到精通》是详细生动地讲命令格式、用途,新手练功区才是讲如何灵活运用、组合命令。 有必要将练功区所有的帖子全部翻遍
@echo off & for /f "delims=" %%a in ("%~dp0.") do set/p=%%~na<nul&pause>nul 学习,长知识了。 非常感谢楼主分享,下载收藏、学习 新人学习中,请多关照 [quote]回复 4楼 的帖子
path是系统环境变量,不要随便用它作为一般变量名哦,小心无意中惹出麻烦来而难以检测(当 ...
[size=2][color=#999999]zqz0012005 发表于 2009-3-30 09:35[/color] [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=25188&ptid=785][img]http://bbs.bathome.net/images/common/back.gif[/img][/url][/size][/quote]
echo a=%~nx0
这个是最简单了的吧 各位大神,你们编了能不能后面给个解释,不然我们想学但是奈和看不懂啊。。 [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=217009&ptid=785]23#[/url] [i]cyh1818[/i] [/b]
这个好像是获取当前文件名吧 [code]@echo off
for %%i in ("%cd%") do echo %%~ni
pause[/code] @echo off
set a=%cd%
set a=%a: =#%
set a=%a:\= %
for %%i in (%a%) do (set a=%%i)
echo %a:#= %
pause>nul @echo off
call :showDir %cd%
:showDir
echo %~n1
pause
页:
[1]