批处理BAT中如何去除变量中的特定符号
想做一个图种工具,代码在下面。问题是拖入文件后变量(本来应该是文件名)会多出双引号,如何去掉?@echooff:mainseta=setb=clsset/pa=请在将图片...
想做一个图种工具,代码在下面。问题是拖入文件后变量(本来应该是文件名)会多出双引号,如何去掉?
@echo off
:main
set a=
set b=
cls
set /p a=请在将图片拖入后按下回车键
set /p b=请在将压缩包拖入后按下回车键
echo 开始处理
copy /b %a%+%b% C:\Documents and Settings\Administrator\桌面\outcome.jpg
echo 处理完毕,文件已输出至桌面
echo 按下任意键以返回……
pause>nul
goto main 展开
@echo off
:main
set a=
set b=
cls
set /p a=请在将图片拖入后按下回车键
set /p b=请在将压缩包拖入后按下回车键
echo 开始处理
copy /b %a%+%b% C:\Documents and Settings\Administrator\桌面\outcome.jpg
echo 处理完毕,文件已输出至桌面
echo 按下任意键以返回……
pause>nul
goto main 展开
1个回答
展开全部
不要去掉,有双引号,才安全,否则如果路径中,或文件名中有空格的话,就会导致最终命令运行出错,就你现在C:\Documents and Settings\Administrator\桌面\outcome.jpg这句内容,你没加双引号,那么你运行后就会直接报错。或桌面根本不会生成文件。
因为在命令行中如果有空格的内容不用双引号括起来,那么一些内容就会被认为是命令参数。
因为在命令行中如果有空格的内容不用双引号括起来,那么一些内容就会被认为是命令参数。
追问
但是现在问题是执行copy /b那一行时会出现错误,无法输出outcome.jpg这个文件,请问该怎么修改呢
追答
上面不是说了吗?那是因为你outcome.jpg的完整路径,你没用英文双引号括起来,因为这个路径中有空格,所以报错。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询