Board logo

标题: 当前目录目录名显示的问题 [打印本页]

作者: lililulula     时间: 2007-5-8 17:08    标题: 当前目录目录名显示的问题

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 )

作者: lxmxn     时间: 2007-5-8 18:08
加西文双引号使代码健壮。

作者: lililulula     时间: 2007-5-9 08:49
但是我现在用变量取目录名,不是固定的地址,有办法吗?我问题在挑战1里面问了,因为貌似挑战人气不足,所以我发帖提问还请各位高手相助.

作者: lililulula     时间: 2007-5-9 14:29
不是吧 已经沉了 我的问题谁来解答下吧

作者: lxmxn     时间: 2007-5-9 15:34
不是固定目录也应该可以啊。 把你的代码发出来看看。

作者: lililulula     时间: 2007-5-9 15:56
回lxmxn 代码已经在顶楼,将顶楼代码保存bat放在目录中显示目录名,可是含空格的目录名显示不完全,不知道是何原因

作者: lxmxn     时间: 2007-5-9 16:01
Re lililulula:
『第 2 楼』: 加西文双引号使代码健壮。
@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"
)

作者: lililulula     时间: 2007-5-9 16:17
恩 可以了 我之前试的时候可能是cd后首次调用getfdname的变量%%i未加引号,而单独在后面的递归过程调用的%%k加引号,总之还是没理解,多谢lxmxn斑竹帮忙~~~

作者: flyinspace     时间: 2007-5-9 16:18
寒,确实没有看到这个问题。。。 最近比较忙。。 而且挑战系列好象就几个高手在玩,其他的人都没有参与感的。。 确实是个问题。。。 看来还应该打造教学贴才行。。。。每一个教学贴对应一个具体的问题。