Board logo

标题: 分离问题 [打印本页]

作者: hkymadmin     时间: 2007-4-9 11:11    标题: 分离问题

例:有一文本,内容是
C:\windows\system32\XXX.exe

我想分离出XXX.EXE前面的目录,
该怎样写》?》
作者: hkymadmin     时间: 2007-4-9 11:11
谢谢
作者: chenall     时间: 2007-4-9 11:16
请查看for的帮助.
for /?
最后面有你要的答案
作者: hkymadmin     时间: 2007-4-9 12:03
看了两天了,还是没有搞出什么成果,请高手指点一下
作者: chenall     时间: 2007-4-9 15:50
提供一个例子吧

  Quote:

  1. @echo off
  2. for /f %%i in ("C:\windows\system32\XXX.exe") do echo %~dpi
  3. pause
        chenall 发表于:  2007-04-09  02:41

[ Last edited by chenall on 2007-4-9 at 03:51 PM ]
作者: lxmxn     时间: 2007-4-9 16:13

@echo off
for /f %%i in (file.ext) do echo %%~dpi
pause


[ Last edited by lxmxn on 2007-4-9 at 12:54 PM ]
作者: everest79     时间: 2007-4-9 21:27
lxmxn兄:
  你的例子中%~dpi会扩展为%cd%而不是文件的正确路径

call :pathx C:\windows\system32\XXX.exe
echo %pathx%&pause
:pathx
set pathx=%~dp1&goto :eof
作者: lxmxn     时间: 2007-4-10 01:56

To everest79:

不好意思,掉了一个%(开始写的是echo %~dpi),现在已经改了。

我的这个方法是可以的,只要file.ext文件中的内容是一个路径形式,就可以扩展出来,而不管文件是否真实的存在。

作者: hkymadmin     时间: 2007-4-10 05:45
虽然路径显示出来了,但是怎样设置我分离出的路径成为变量  a呢?
作者: fjcase     时间: 2007-4-10 06:02
@echo off
for /f %%i in ("D:\cuteftp\CUTFTP32.EXE") do set a=%%~dpi
echo %a%
pause
作者: lxmxn     时间: 2007-4-10 07:38

楼上正解,只需设置一个变量即可。

作者: hkymadmin     时间: 2007-4-10 08:53
谢谢你们
作者: hkymadmin     时间: 2007-4-10 08:56
能详细讲解一下   %%~dpi  ?我不明白着个是什么意思
作者: dikex     时间: 2007-4-10 10:08
for /?
翻到最下面
作者: everest79     时间: 2007-4-11 06:38
我以为file.ext就是完整字符类