无忧启动论坛
标题:
........................
[打印本页]
作者:
527104427
时间:
2014-5-31 19:45
标题:
........................
本帖最后由 527104427 于 2016-8-15 21:29 编辑
http://blog.sina.com.cn/a527104427
http://bbs.wuyou.net/forum.php?m ... d=379244&extra=
作者:
sratlf
时间:
2014-5-31 22:15
我是用的循环 逐个参数后面加\
作者:
527104427
时间:
2014-5-31 23:44
sratlf 发表于 2014-5-31 22:15
我是用的循环 逐个参数后面加\
试了一下,这样可以达到效果
!BAT
debug 0
set a= /a b c.iso
echo .%a%.
call :first
call :last
set d= &; set /a n=0 &; set a=%a% &; set /a c=*0x4cb00 &; set /a c=%c%-1
call :mid
echo .%a%.
goto :eof
::去前面的空格
:first
set b=%a:~,1%
if "%b%"=="" && set a=%a:~1% ! goto :eof
goto %0
::去最后面的空格
:last
set b=%a:~-1%
if "%b%"=="" && set a=%a:~,-1% ! goto :eof
goto %0
::中间的每个空格加反斜杠
:mid
set b=%a:~-1%
if "%b%"=="" && set d=\ %d% ! set d=%b%%%d%
if "%n%"=="%c%" && set a=%d% && exit
set a=%a:~,-1% && set /a n=%n%+1
goto %0
复制代码
作者:
sratlf
时间:
2014-6-1 23:00
527104427 发表于 2014-5-31 23:44
试了一下,这样可以达到效果
用下面这样也可以 其实首空格可以不用考虑 只需要考虑尾部含空格的情况
!BAT
debug 0
set tmp=
set newpath=
setlocal
set tmp=/a c b .iso
set length=%@retval%
set n=-1
:start
if not "%tmp:~-1%"==" " && goto :check_blank
set tmp=%tmp:~,-1%
set length=%@retval%
goto :start
:check_blank
if "%n%"=="%length%" && goto :end
set /a n=%n% + 1 > nul
call if "%^tmp:~%%n%%,1%"==" " || goto :check_next
call set newpath=%newpath%\%^tmp:~%%n%%,1%
goto :check_blank
:check_next
call set newpath=%newpath%%%^tmp:~%%n%%,1%
goto :check_blank
:end
endlocal && set newpath=%newpath%
exit
复制代码
欢迎光临 无忧启动论坛 (http://wuyou.net/)
Powered by Discuz! X3.3