summerday 发表于 2011-2-28 02:13
[已解决]批处理的@shift作用是什么?用Quick Batch File Compiler制作的EXE后,在临时文件夹里找到了BAT的源码,但是查看代码的时候发现在源代码最前头多了一行@shift,请问这行是什么意思,最重要的是,在@shift之下,del %0这行删除自身的代码就变成无效了,我加上pause查看的时候,del %0这行代码显示的是“命令语法不正确”。请高手们帮我解答下。
我想知道的是,①为什么Quick Batch File Compiler生成的EXE里的BAT代码会多了一行@shift在前面?[email=②@shift]② @shift[/email]是有什么作用?③为什么有了@shift之后del %0这行命令会提示命令语法错误?
[[i] 本帖最后由 summerday 于 2011-3-1 02:26 编辑 [/i]]wc726842270 发表于 2011-2-28 17:04
确实0%这种用法我也没见过。不过LZ是不是写错了,是%0吧!·!!!另外LZ的标题于内容差距很大啊summerday 发表于 2011-2-28 19:10
[quote]原帖由 [i]wc726842270[/i] 于 2011-2-28 17:04 发表 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=71508&ptid=11238][img]http://bbs.bathome.net/images/common/back.gif[/img][/url]
确实0%这种用法我也没见过。不过LZ是不是写错了,是%0吧!·!!!另外LZ的标题于内容差距很大啊 [/quote]
是%0,呵呵,是我在这里写错了,但是真的是在前面加上@shift之后del %0就是提示命令语法错误。
标题和内容有什么问题吗?我想知道的是,①为什么Quick Batch File Compiler生成的EXE里的BAT代码会多了一行@shift在前面?[email=②@shift]② @shift[/email]是有什么作用?③为什么有了@shift之后del %0这行命令会提示命令语法错误?随风 发表于 2011-2-28 19:39
shift 是参数移位,运行后 %0 以不存在,del 后面没有了文件名,当然就提示语法错误了
话说以前还真没注意过这个问题Batcher 发表于 2011-2-28 20:51
最后一行:[code]start cmd /c del /f /a /q "%~f0"[/code]
页:
[1]