来DOS联盟论坛时间不长,进步非常快,学到不少东西。
搜索让人进步很快,发问之前最好在论坛搜索相关主题,当然象我一样经常不知道搜索什么关键字的就不好办了,发帖求助吧,哈哈!
看到时不时有许多像我一样的新手发帖求助“带(含)空格”的问题,特意搜索整理一下相关主题。
1.双引号""
(1)普通带空格路径
Examples:
@echo off
C:\Program Files\WinRAR\WinRAR.exe
exit
错误提示:
'C:\Program' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
解决办法:
@echo off
"C:\Program Files\WinRAR\WinRAR.exe"
exit
(示例中的C:\Program Files也可以用环境变量%ProgramFiles%或者短名C:\Progra~1代替)
(2)设置变量获取带空格路径
Examples:
@echo off
for /r %%a in ("*.txt") do (
set str=%%a
)
错误提示:
其中%%a无法正确获取*.txt中含有空格文件名的值
解决办法:
@echo off
for /r %%a in ("*.txt") do (
set "str=%%a"
)
Examples:
@echo off
for /f "tokens=*" %%a in ('dir /a /b /s d:\test') do (
rd /s /q %%a
del /q /f %%a
)
错误提示:
无法删除带空格文件及文件夹
解决办法:
@echo off
for /f "tokens=*" %%a in ('dir /a /b /s d:\test') do (
rd /s /q "%%a"
del /q /f "%%a"
)
2.start的问题
Examples:
@echo off
start "C:\Program Files\WinRAR\WinRAR.exe"
exit
错误提示:
你会发现批处理不是运行指定程序,而是调了另外一个CMD出来,郁闷!
解决办法:
@echo off
start "" "C:\Program Files\WinRAR\WinRAR.exe"
exit
(至于为什么,start/?得到相关信息。START
"title"在窗口标题栏中显示的标题。路径带引号,因此title设置为空. )
3.FOR语句中带空格路径的问题
Examples:
FOR /F %%i IN ('DIR "C:\program files\WinRAR\*.rar" /s/b')
错误提示:
%%i 只能获取 c:\program
解决办法:使用扩展参数usebackq后给路径加双引号就行了
FOR /F "usebackq delims=" %%i IN (`DIR "C:\program files\WinRAR\*.rar" /s/b`)
4.findstr查找带空格字符串的问题
Examples:
set drive=d:
for /f "delims=" %%i in ('dir /b %drive%^|findstr /e " "') do (rd "%drive%\%%i\")
错误提示:
findstr命令语法不正确
解决办法:
findstr /e /c:" "'
[ Last edited by 15935643331 on 2008-12-17 at 03:47 ]
搜索让人进步很快,发问之前最好在论坛搜索相关主题,当然象我一样经常不知道搜索什么关键字的就不好办了,发帖求助吧,哈哈!
看到时不时有许多像我一样的新手发帖求助“带(含)空格”的问题,特意搜索整理一下相关主题。
1.双引号""
(1)普通带空格路径
Examples:
@echo off
C:\Program Files\WinRAR\WinRAR.exe
exit
错误提示:
'C:\Program' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
解决办法:
@echo off
"C:\Program Files\WinRAR\WinRAR.exe"
exit
(示例中的C:\Program Files也可以用环境变量%ProgramFiles%或者短名C:\Progra~1代替)
(2)设置变量获取带空格路径
Examples:
@echo off
for /r %%a in ("*.txt") do (
set str=%%a
)
错误提示:
其中%%a无法正确获取*.txt中含有空格文件名的值
解决办法:
@echo off
for /r %%a in ("*.txt") do (
set "str=%%a"
)
Examples:
@echo off
for /f "tokens=*" %%a in ('dir /a /b /s d:\test') do (
rd /s /q %%a
del /q /f %%a
)
错误提示:
无法删除带空格文件及文件夹
解决办法:
@echo off
for /f "tokens=*" %%a in ('dir /a /b /s d:\test') do (
rd /s /q "%%a"
del /q /f "%%a"
)
2.start的问题
Examples:
@echo off
start "C:\Program Files\WinRAR\WinRAR.exe"
exit
错误提示:
你会发现批处理不是运行指定程序,而是调了另外一个CMD出来,郁闷!
解决办法:
@echo off
start "" "C:\Program Files\WinRAR\WinRAR.exe"
exit
(至于为什么,start/?得到相关信息。START
"title"在窗口标题栏中显示的标题。路径带引号,因此title设置为空. )
3.FOR语句中带空格路径的问题
Examples:
FOR /F %%i IN ('DIR "C:\program files\WinRAR\*.rar" /s/b')
错误提示:
%%i 只能获取 c:\program
解决办法:使用扩展参数usebackq后给路径加双引号就行了
FOR /F "usebackq delims=" %%i IN (`DIR "C:\program files\WinRAR\*.rar" /s/b`)
4.findstr查找带空格字符串的问题
Examples:
set drive=d:
for /f "delims=" %%i in ('dir /b %drive%^|findstr /e " "') do (rd "%drive%\%%i\")
错误提示:
findstr命令语法不正确
解决办法:
findstr /e /c:" "'
[ Last edited by 15935643331 on 2008-12-17 at 03:47 ]
