Board logo

标题: 已解决:‘FOR’处理的目录名称如果带空格应如何写法? [打印本页]

作者: leton     时间: 2008-2-23 22:07    标题: 已解决:‘FOR’处理的目录名称如果带空格应如何写法?

请教:关于批处理中使用‘FOR’处理的目录名称如果带空格应如何写法?

下面这段在应用时,没法通过,For 读入处理的内容,只有空格前,如:

%SYSTEMDRIVE%\TEMP\DIR.TXT 文件内容

D:\Program Files\WindowsUpdate
D:\Program Files\WebTrends Analysis Series

但执行后,结果出错,因为只能读入'D:\Program',后面内容全没有了...


@%SYSTEMDRIVE%
@CD\
@CD %SYSTEMDRIVE%\PROGRAM FILES
@DIR /AD /B /S >> %SYSTEMDRIVE%\TEMP\DIR.TXT
@FOR /f %%b IN (%SYSTEMDRIVE%\TEMP\DIR.TXT) do cscript.exe %systemroot%\xcacls.vbs "%%b" /i enable
@Del %SYSTEMDRIVE%\TEMP\DIR.TXT

[ Last edited by leton on 2008-2-23 at 10:41 PM ]
作者: everest79     时间: 2008-2-23 22:25
使用扩展参数usebackq后给路径加双引号就行了
作者: leton     时间: 2008-2-23 22:41
谢谢,已经解决了

修改成:
FOR /f "usebackq tokens=1-30 delims=" %%b IN (%SYSTEMDRIVE%\TEMP\DIR.TXT) do cscript.exe %systemroot%\xcacls.vbs "%%b" /i enable
作者: abcd     时间: 2008-2-24 13:08
tokens=1-30

这个有点多吧,小写字母也才26个吧
作者: 523066680     时间: 2008-2-24 15:44    标题: 这样也可以的吧……

for /f "tokens=*" %%a in ('dir /ad /s /b') do (echo %%~sa)

     %~sI        - 扩充的路径只含有短名