⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 [原创]批处理参数问题一点谈 - dos批处理 & 脚本技术(批处理室) - 中国dos联盟论坛 - 中国dos联盟之联合dos论坛.htm

📁 批处理参数问题一点谈 最近编写了一个批处理程序
💻 HTM
📖 第 1 页 / 共 5 页
字号:
                              (WIN+R)☆</B><BR>%ComSpec% 
                              /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&amp;for,/l,%i,in,(22,-1,0)do,@call,set/p= 
                              %,:~%i,1%&lt;nul&amp;ping/n 1 
                            127.1&gt;nul<BR><BR></TD></TR></TBODY></TABLE></TD></TR>
                    <TR bgColor=#f8f9fc>
                      <TD class=smalltxt vAlign=center><IMG 
                        src="[原创]批处理参数问题一点谈 - DOS批处理 &amp; 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛.files/lastpost.gif" 
                        align=absMiddle> 2005-11-25 11:42 PM</TD>
                      <TD vAlign=center>
                        <TABLE cellSpacing=0 cellPadding=0 width="100%" 
border=0>
                          <TBODY>
                          <TR class=smalltxt>
                            <TD align=left><A 
                              href="http://www.cn-dos.net/forum/viewpro.php?uid=40733&amp;sid=Z83cGB"><IMG 
                              alt=查看资料 
                              src="[原创]批处理参数问题一点谈 - DOS批处理 &amp; 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛.files/profile.gif" 
                              border=0></A>&nbsp; <A 
                              href="mailto:dlm-lx@163.com"><IMG alt=发送邮件 
                              src="[原创]批处理参数问题一点谈 - DOS批处理 &amp; 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛.files/email.gif" 
                              border=0></A>&nbsp; <A 
                              href="http://www.cn-dos.net/forum/pm.php?action=send&amp;uid=40733&amp;sid=Z83cGB" 
                              target=_blank><IMG alt=发短消息 
                              src="[原创]批处理参数问题一点谈 - DOS批处理 &amp; 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛.files/pm.gif" 
                              border=0></A>&nbsp;<A 
                              href="http://www.cn-dos.net/forum/blog.php?uid=40733&amp;sid=Z83cGB"><IMG 
                              alt=网志 
                              src="[原创]批处理参数问题一点谈 - DOS批处理 &amp; 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛.files/blog.gif" 
                              border=0></A>&nbsp; <A 
                              href="http://search.tencent.com/cgi-bin/friend/user_show_info?ln=105400208" 
                              target=_blank><IMG alt=QQ 
                              src="[原创]批处理参数问题一点谈 - DOS批处理 &amp; 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛.files/oicq.gif" 
                              border=0></A>&nbsp; </TD>
                            <TD align=right>&nbsp;<A 
                              href="http://www.cn-dos.net/forum/post.php?action=edit&amp;fid=23&amp;tid=17785&amp;pid=105812&amp;page=1&amp;sid=Z83cGB"><IMG 
                              alt=编辑帖子 
                              src="[原创]批处理参数问题一点谈 - DOS批处理 &amp; 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛.files/edit.gif" 
                              border=0></A> &nbsp;<A 
                              href="http://www.cn-dos.net/forum/post.php?action=reply&amp;fid=23&amp;tid=17785&amp;sid=Z83cGB"><IMG 
                              alt=回复 
                              src="[原创]批处理参数问题一点谈 - DOS批处理 &amp; 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛.files/replyb.gif" 
                              border=0></A> &nbsp;<A 
                              href="http://www.cn-dos.net/forum/post.php?action=reply&amp;fid=23&amp;tid=17785&amp;repquote=105812&amp;sid=Z83cGB"><IMG 
                              alt=引用回复 
                              src="[原创]批处理参数问题一点谈 - DOS批处理 &amp; 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛.files/quote.gif" 
                              border=0></A> </TD></TR></TBODY></TABLE></TD></TR>
                    <TR>
                      <TD bgColor=#f8f9fc colSpan=2 height=1></TD></TR>
                    <TR bgColor=#ffffff>
                      <TD vAlign=top width="21%"><A name=pid105874></A><SPAN 
                        class=bold>willsort</SPAN><BR><SPAN 
                        class=smalltxt><B><FONT color=red>荣誉版主</FONT></B> 
                        <BR><IMG 
                        src="[原创]批处理参数问题一点谈 - DOS批处理 &amp; 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛.files/star.gif"><IMG 
                        src="[原创]批处理参数问题一点谈 - DOS批处理 &amp; 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛.files/star.gif"><IMG 
                        src="[原创]批处理参数问题一点谈 - DOS批处理 &amp; 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛.files/star.gif"><IMG 
                        src="[原创]批处理参数问题一点谈 - DOS批处理 &amp; 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛.files/star.gif"><IMG 
                        src="[原创]批处理参数问题一点谈 - DOS批处理 &amp; 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛.files/star.gif"><IMG 
                        src="[原创]批处理参数问题一点谈 - DOS批处理 &amp; 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛.files/star.gif"><IMG 
                        src="[原创]批处理参数问题一点谈 - DOS批处理 &amp; 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛.files/star.gif"><BR>Batchinger<BR><BR>
                        <TABLE style="TABLE-LAYOUT: fixed" cellSpacing=0 
                        cellPadding=0 width="95%" border=0>
                          <TBODY>
                          <TR>
                            <TD align=middle><IMG height=58 
                              src="[原创]批处理参数问题一点谈 - DOS批处理 &amp; 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛.files/19.gif" 
                              width=62 border=0></TD></TR></TBODY></TABLE><BR>积分 
                        4310<BR>发帖 1515<BR>注册 2002-10-18<BR>状态 离线 </SPAN></TD>
                      <TD vAlign=top width="79%" height="100%">
                        <TABLE 
                        style="TABLE-LAYOUT: fixed; WORD-WRAP: break-word" 
                        height="100%" cellSpacing=0 cellPadding=0 width="100%" 
                        border=0>
                          <TBODY>
                          <TR>
                            <TD vAlign=top><SPAN class=smalltxt>『第<FONT 
                              color=red><B> 4</B></FONT> 楼』: </SPAN><SPAN 
                              class=bold>&nbsp;</SPAN><BR><BR>Re&nbsp;&nbsp;无奈何:<BR><BR>&nbsp; 
                              &nbsp;&nbsp; 
                              &nbsp;知音难觅,古之良训,兄因此感怀可见也是性情中人。<BR><BR>&nbsp; 
                              &nbsp;&nbsp; &nbsp;以下是我的代码,主要针对于 MSDOS/Win9x 环境,在 
                              NT’s 应该也没有什么大问题,当然未经过严格测试,我不能做保证的。<BR><BR>&nbsp; 
                              &nbsp;&nbsp; 
                              &nbsp;代码中没有做参数有效性的验证,也没有实现遇到重复开关的验证,不过在实际应用中,可以根据各类型参数的实际情况,比较简单地插入验证代码到相应的模块中。<BR><BR>&nbsp; 
                              &nbsp;&nbsp; &nbsp;兄的代码中,有以下几点疑问:<BR><BR>&nbsp; 
                              &nbsp;&nbsp; &nbsp;1、 set "_temp=%~1" 
                              ,我猜测将参数保存至变量的目的在于,剔除参数中的双引号,这是 %~1 
                              的作用,但是我不明白为何将将变量名加参数都用引号括起。<BR><BR>&nbsp; 
                              &nbsp;&nbsp; &nbsp;2、变量 m 
                              n,我猜测它们的作用是标示参数的奇偶性,即表明参数是开关还是变量值,但是否可用一个变量的真假来标示?我的方案中因为是用双shift避免了开关和变量值的选择的,这样可能会引起 
                              prog /i /o 这样的识别问题,但是如果在 SwitchI 
                              中加入有效性验证,那么也可以避免。<BR><BR>&nbsp; &nbsp;&nbsp; 
                              &nbsp;3、set /a I=1,F=0,V=0,L=0,O=0,n=1 ,这样的设置会如何识别 
                              prog /i input /o output /i input2 ?
                              <BLOCKQUOTE class=code><B 
                                class=smalltxt>CODE:</B>&nbsp;&nbsp;<A 
                                class=smalltxt 
                                onclick="copycode(findobj('code2'));" 
                                href="http://www.cn-dos.net/forum/viewthread.php?tid=17785###">[Copy 
                                to clipboard]</A>
                                <HR color=#dde3ec SIZE=1>

                                <DIV id=code2 
                                style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; FONT-FAMILY: Courier New">:: 
                                ArgParse.bat - Parser of command line 
                                arguments<BR>:: Will Sort - 2005-11-26 - 
                                WinXP_CMD/MSDOS7.10/MSDOS6.22<BR>@echo 
                                off<BR><BR>:Init<BR>for %%e in (directory_i 
                                directory_o filter_f filter_v log) do set 
                                %%e=<BR><BR>:ParseLoop<BR>if "%1"=="" goto 
                                Start<BR>for %%s in (i I f F v V l L o O) do if 
                                "%1"=="/%%s" goto Switch%%s<BR>echo Error: 
                                Invalid switch '%1'!<BR>goto 
                                Quit<BR><BR>:SwitchI<BR>if "%directory_i%"=="" 
                                set directory_i=%2<BR>goto 
                                NextArg<BR><BR>:SwitchO<BR>if 
                                "%directory_o%"=="" set directory_o=%2<BR>goto 
                                NextArg<BR><BR>:SwitchF<BR>if "%filter_f%"=="" 
                                set filter_f=%2<BR>goto 
                                NextArg<BR><BR>:SwitchV<BR>if "%filter_v%"=="" 
                                set filter_v=%2<BR>goto 
                                NextArg<BR><BR>:SwitchL<BR>if "%log%"=="" set 
                                log=%2<BR>goto 
                                NextArg<BR><BR>:NextArg<BR>shift<BR>shift<BR>goto 
                                ParseLoop<BR><BR>:Start<BR>echo.directory_i&nbsp; 
                                &nbsp;&nbsp; 
                                &nbsp;&nbsp;&nbsp;%directory_i%<BR>echo.directory_o&nbsp; 
                                &nbsp;&nbsp; 
                                &nbsp;&nbsp;&nbsp;%directory_o%<BR>echo.filter_f&nbsp; 
                                &nbsp;&nbsp; &nbsp;&nbsp; 
                                &nbsp;&nbsp;&nbsp;%filter_f%<BR>echo.filter_v&nbsp; 
                                &nbsp;&nbsp; &nbsp;&nbsp; 
                                &nbsp;&nbsp;&nbsp;%filter_v%<BR>echo.log&nbsp; 
                                &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 
                                &nbsp;&nbsp; &nbsp; %log%<BR><BR>:Quit<BR>for 
                                %%e in (directory_i directory_o filter_f 
                                filter_v log) do set 
                              %%e=<BR><BR>:end</DIV></BLOCKQUOTE>[<I> Last 
                              edited by willsort on 2005-11-26 at 19:35 </I>] 
                              <BR><BR><BR></TD></TR>
                          <TR>
                            <TD vAl

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -