批处理中%1 是表示传递的第一个参数,如果没带参数,则 %1 为空,肯定为没有参数,使用代码示例,如果有参数输出,如果没有参数跳转到结束,代码如下:
@echo off
if "%1"=="" goto :end
echo %1
:end
echo 退出
效果如下:
%1 是表示传递的第一个参数,如果没带参数,则 %1 为空 ,对于写的代码而言,形同:
if not exit goto :sorry
当然是语法错误
下面第一句把%1为空的跳开就不会发生语法错误了:
if "%1"=="" echo 应该带参数运行&goto :sorry
if not exist %1 echo 找不到 %1 文件或文件夹&goto :sorry
@echo off
if "%~1"=="" (set /p "filename=请输入文件名或拖动文件至此:") else set "filename=%~1"