批处理文件怎么判断有无参数下传
如果把被操作的文件直接拖到BAT文件上时,就可以直接调用传下的参数(就是文件名了),但如果直接运行BAT文件就没有这个参数了,就要做一个要用户输入文件名的,我想即可以直接...
如果把被操作的文件直接拖到BAT文件上时,就可以直接调用传下的参数(就是文件名了),但如果直接运行BAT文件就没有这个参数了,就要做一个要用户输入文件名的,我想即可以直接拖又可以手动输入文件名的,怎么实现,有谁写个代码看看
展开
3个回答
展开全部
%1 是表示传递的第一个参数,如果没带参数,则 %1 为空 ,对于写的代码而言,形同:
if not exit goto :sorry
当然是语法错误
下面第一句把%1为空的跳开就不会发生语法错误了:
if "%1"=="" echo 应该带参数运行&goto :sorry
if not exist %1 echo 找不到 %1 文件或文件夹&goto :sorry
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"
更多追问追答
追问
好用,谢谢啊,顺便再问一下,%1和%~1有没有区别啊,谢谢了
追答
%~1会自动去除传递过来参数的""
因为文件带空格时系统会自动在前后加对""来识别,引用时要去除""
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询