批处理 %~1和%1有什么区别

如题所述

一、处理不同

1、 %~1:当参数以引号开头时,%~1会自动将引号删除。

2、%1:当参数以引号开头时,%1不会自动将引号删除。

二、表示含义不同

1、 %~1:表示处理过的字符,比如输入字符为"aa",表示结果为aa。

2、%1:表示原输入字符,比如输入字符为"aa",表示结果为“aa”。


三、语法不同

1、 %~1:如果不借助其他其他命令,批处理做多接收9个额外的参数。

2、%1:使用shift命令可以对参数进行偏移,从而取到更多的参数。


参考资料来源:百度百科-批处理

参考资料来源:百度百科-bat文件

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-08
%1就是表示批处理的第一个参数,

%~1表示删除参数外面的引号

比如有个批处理文件 test.bat
在cmd中输入命令
test.bat "test"
%1表示的是“test“。%~1表示的是test,没有了双引号本回答被网友采纳
第2个回答  2013-09-12
@Echo Off
Echo %1
Echo %~1
Pause

你可以把上面的代码保存为批处理,然后用鼠标拖一个文件到此批处理上,看看效果.

%~1 就是去掉 %1 两头的引号.

例如 %1="R:\新建 文件夹"

那么 %~1=R:\新建 文件夹

第3个回答  推荐于2017-09-22
下面是批处理,运行后就知道了。
@echo off
call :sub "abc"
pause
call :sub abc"
pause
call :sub "abc
pause
goto :eof
:sub
echo %1 %~1
总的来说是:无头不删,有头连尾删。(头指的是引号)本回答被提问者采纳
相似回答