批处理如何判断是否传递给文件参数
答案:3 悬赏:30 手机版
解决时间 2021-11-29 16:07
- 提问者网友:世勋超人
- 2021-11-28 21:55
批处理如何判断是否传递给文件参数
最佳答案
- 五星知识达人网友:平生事
- 2021-11-28 22:03
%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
全部回答
- 1楼网友:爱难随人意
- 2021-11-28 23:41
你怎么用的啊?
if not exist %1 (goto error ) else ( goto yes)
:error
echo error
pause
:yes
echo yes
pause
上面的保存成bat
然后随便拖一个文件上去,没出现问题啊追问不是我是直接双击打开的时候不能判断,会提示语法错误追答yyykkkyyyy
问答的很强悍啊!应该解决了吧……厉害……追问嗯谢谢
if not exist %1 (goto error ) else ( goto yes)
:error
echo error
pause
:yes
echo yes
pause
上面的保存成bat
然后随便拖一个文件上去,没出现问题啊追问不是我是直接双击打开的时候不能判断,会提示语法错误追答yyykkkyyyy
问答的很强悍啊!应该解决了吧……厉害……追问嗯谢谢
- 2楼网友:平生事
- 2021-11-28 23:14
%1 是表示传递的第一个参数,如果没带参数,则 %1 为空 ,对于你写的代码而言,形同:
if not exit goto :sorry
当然是语法错误,
下面第一句把%1为空的跳开就不会发生语法错误了:
if "%1"=="" echo 应该带参数运行&goto :sorry
if not exist %1 echo 找不到 %1 文件或文件夹&goto :sorry追问if "%1"=="" (
goto :sorry
)else(
if not %~x1==.asm goto :sorry
)
按楼下大虾说的改了下,还是不行,没参数是正确,有参数(当吧一个文件拖到上面时)提示不应有参数
这样正确了,但是传递的文件名字中不能有空格啊怎么回事大虾指教
上面的是不对的提示不应该有else为什么?
if "%1"=="" goto :sorry
if not %~x1==.asm goto :sorry
这个是正确的追答格式上我该说的已经说了,自己应该注意,比如现贴的 else 与后面的括号就差空格 而且对于if 判断字符来说==的前后都应该加上引号比较,(比如拖了一个无后缀名的) 要有此习惯,而且对于这种比较if 应该加 /i 忽略大小写
看了追问,大概知道用途,给你换个写法:(不用判断是否为空)
echo %~1|findstr/ie "\.asm">nul||goto sorry
if not exit goto :sorry
当然是语法错误,
下面第一句把%1为空的跳开就不会发生语法错误了:
if "%1"=="" echo 应该带参数运行&goto :sorry
if not exist %1 echo 找不到 %1 文件或文件夹&goto :sorry追问if "%1"=="" (
goto :sorry
)else(
if not %~x1==.asm goto :sorry
)
按楼下大虾说的改了下,还是不行,没参数是正确,有参数(当吧一个文件拖到上面时)提示不应有参数
这样正确了,但是传递的文件名字中不能有空格啊怎么回事大虾指教
上面的是不对的提示不应该有else为什么?
if "%1"=="" goto :sorry
if not %~x1==.asm goto :sorry
这个是正确的追答格式上我该说的已经说了,自己应该注意,比如现贴的 else 与后面的括号就差空格 而且对于if 判断字符来说==的前后都应该加上引号比较,(比如拖了一个无后缀名的) 要有此习惯,而且对于这种比较if 应该加 /i 忽略大小写
看了追问,大概知道用途,给你换个写法:(不用判断是否为空)
echo %~1|findstr/ie "\.asm">nul||goto sorry
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯