中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-10 16:53
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [挑战1] 目录最后一个名称的提取[ 难度:☆]
可打印版本  3,984 / 31
第16楼 flyinspace 发表于 2007-05-01 02:15
银牌会员 发帖 517 积分 1,206
Originally posted by notepad at 2007-4-30 01:01 PM:
用不了啊 `````

什么意思???
第17楼 lililulula 发表于 2007-05-01 04:37
中级用户 发帖 138 积分 302
@echo off
for /f "tokens=* delims=" %%i in ('cd') do (
set "fdname"="%%i"
call :GetFdName %fdname%
)
:GetFdName
for /f "tokens=1,* delims=\" %%j in ("%~1") do (
if "%%k"=="" echo %%j&&pause&&goto :eof
call :GetFdName %%k
)

我改了下,我让它显示当前所在目录文件夹名为何fdname无法传递到getfdname里?如果我直接让它传递%%i的话碰到有空格的文件会不完全显示,所以我要设置fdname传递给getfdname
第18楼 lililulula 发表于 2007-05-01 05:50
中级用户 发帖 138 积分 302
要5.1了 预祝大家节日快乐 顺便来的人帮我看看问题啊 谢谢了
第19楼 zhoushijay 发表于 2007-05-01 05:57
高级用户 发帖 375 积分 845
@echo off
for /f "delims=" %%i in ("c:\aa\bb\cc") do (
echo %%~nxi
)
pause
第20楼 flyinspace 发表于 2007-05-01 06:10
银牌会员 发帖 517 积分 1,206
Originally posted by zhoushijay at 2007-4-30 04:57 PM:
@echo off
for /f "delims=" %%i in ("c:\aa\bb\cc") do (
echo %%~nxi
)
pause


这个怪我先前没有考虑周到。在发贴的时候忘记写下来了。。。

使用了 for 的特殊参数。。

我们的要求是不使用 这些特殊参数。
第21楼 slore 发表于 2007-05-01 13:24
铂金会员 发帖 2,478 积分 5,212
居然没有用VBS的?
第22楼 baomaboy 发表于 2007-05-01 16:24
银牌会员 发帖 554 积分 1,513
第23楼 slore 发表于 2007-05-01 16:43
铂金会员 发帖 2,478 积分 5,212
Set WshSHell = WScript.CreateObject("WScript.Shell")
FP="c:\aaa\bbb\ccc"
FPArr=Split(FP,"\")
For i=1 To UBound(FPArr)
FPTest = FPArr(i)
Next
WshSHell.popup "最终目录:"&vbcrlf&FPTest
Set WshSHell = Nothing
WScript.Quit(0)


MsgBox FPArr(UBound(FPArr))不可以么?
InstrRev()不行么?


FP = "c:\aaa\bbb\ccc"
FPArr = Split(FP, "\")
MsgBox FPArr(UBound(FPArr))
Pos=InstrRev(FP, "\")+1
MsgBox Mid(FP,Pos,(Len(FP) - InstrRev(FP, "\")))

[ Last edited by slore on 2007-5-1 at 03:56 AM ]
第24楼 baomaboy 发表于 2007-05-01 17:04
银牌会员 发帖 554 积分 1,513
不可以么?
不行么?
FP或者FPArr还要吗?
第25楼 slore 发表于 2007-05-01 17:06
铂金会员 发帖 2,478 积分 5,212
你的循环的意义何在?
第26楼 baomaboy 发表于 2007-05-01 17:40
银牌会员 发帖 554 积分 1,513
用在此处确实无意义,不过追究的话连FP都没存在的意义了
第27楼 zerocq 发表于 2007-05-01 18:10
中级用户 发帖 196 积分 458
用vbs的split函数按/分割字符串

然后len函数逐个检测行不
第28楼 lililulula 发表于 2007-05-08 09:28
中级用户 发帖 138 积分 302

@echo off
for /f "tokens=* delims=" %%i in ('cd') do (
set "fdname"="%%i"
call :GetFdName %fdname%
)
:GetFdName
for /f "tokens=1,* delims=\" %%j in ("%~1") do (
if "%%k"=="" echo %%j&&pause&&goto :eof
call :GetFdName %%k
)



我改了下,我让它显示当前所在目录文件夹名为何fdname无法传递到getfdname里?如果我直接让它传递%%i的话碰到有空格的文件会不完全显示,所以我要设置fdname传递给getfdname



5,1节前的问题,还是希望知道下原因,或者告诉我怎么解决含空格的文件名显示方法,如下例显示当前目录名时候如目录名含有空格则显示不完全.

@echo off
for /f "tokens=* delims=" %%i in ('cd') do (
call :GetFdName %%i
)
:GetFdName
for /f "tokens=1,* delims=\" %%j in ("%~1") do (
if "%%k"=="" echo %%j&&pause&&goto :eof
call :GetFdName %%k
)


[ Last edited by lililulula on 2007-5-8 at 11:13 AM ]
第29楼 xtanbmy 发表于 2008-04-07 16:40
初级用户 发帖 31 积分 47
为你的 努力 加油!!
为你的 努力 加油!!
说实话,提一些有意义的问题,然后大家讨论解决,确实有助于提高论坛人气,也有助于一些新手快速成长起来!当然我自己也是新手,努力学习中...
为你的 努力 加油!!
第30楼 HAT 发表于 2008-04-08 05:38
版主 发帖 5,017 积分 9,023
似乎很久之前讨论过这个问题
上一页  1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023