shellexecute调用DOS命令 的参数问题(0分)

  • 主题发起人 主题发起人 wzl8820520
  • 开始时间 开始时间
W

wzl8820520

Unregistered / Unconfirmed
GUEST, unregistred user!
用shellexecute 调用 DOS命令时..<br>shellexecute(handle,'open',pchar('command.com'),pchar('[red]/c[/red] copy file1.txt file2.txt'),nil,sw_show);<br><br>shellexecute(handle,'open',pchar('command.com'),pchar('[red]/k[/red] dir'),nil,sw_show);<br><br>我想问下这个 [red]/c[/red] &nbsp;[red]/k[/red] 是什么意思..调用DOS命令时还有别的参数吗 <br><br>请高手指导下! 谢谢!
 
这些问题自己打开电脑查一下就会知道啦。<br>在 DOS 窗口键入命令:cmd /? ,就会有以下结果:<br>启动 Windows XP 命令解释程序一个新的实例<br><br>CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]<br>&nbsp; &nbsp; [[/S] [/C | /K] string]<br><br>/C &nbsp; &nbsp; &nbsp;执行字符串指定的命令然后终断<br>/K &nbsp; &nbsp; &nbsp;执行字符串指定的命令但保留<br>/S &nbsp; &nbsp; &nbsp;在 /C 或 /K 后修改字符串处理(见下)<br>/Q &nbsp; &nbsp; &nbsp;关闭回应<br>/D &nbsp; &nbsp; &nbsp;从注册表中停用执行 AutoRun 命令(见下)<br>/A &nbsp; &nbsp; &nbsp;使向内部管道或文件命令的输出成为 ANSI<br>/U &nbsp; &nbsp; &nbsp;使向内部管道或文件命令的输出成为 Unicode<br>/T:fg &nbsp; 设置前景/背景颜色(详细信息,请见 COLOR /?)<br>/E:ON &nbsp; 启用命令扩展(见下)<br>/E:OFF &nbsp;停用命令扩展(见下)<br>/F:ON &nbsp; 启用文件和目录名称完成字符 (见下)<br>/F:OFF &nbsp;停用文件和目录名称完成字符(见下)<br>/V:ON &nbsp; 将 ! 作为定界符启动延缓环境变量扩展。如: /V:ON 会<br>&nbsp; &nbsp; &nbsp; &nbsp; 允许 !var! 在执行时允许 !var! 扩展变量 var。var 语法<br>&nbsp; &nbsp; &nbsp; &nbsp; 在输入时扩展变量,这与在一个 FOR 循环内不同。<br>/V:OFF &nbsp;停用延缓的环境扩展。<br><br>请注意,如果字符串有引号,可以接受用命令分隔符 '&amp;&amp;' 隔开<br>的多个命令。并且,由于兼容原因,/X 与 /E:ON 相同,/Y 与<br>/E:OFF 相同,并且 /R 与 /C 相同。忽略任何其他命令行开关。<br><br>如果指定了 /C 或 /K,命令行开关后的命令行其余部分将作为命令行处<br>理;在这种情况下,会使用下列逻辑处理引号字符("):<br><br>&nbsp; &nbsp; 1. &nbsp; 如果符合下列所有条件,那么在命令行上的引号字符将被<br>&nbsp; &nbsp; &nbsp; &nbsp; 保留:<br><br>&nbsp; &nbsp; &nbsp; &nbsp; - 不带 /S 命令行开关<br>&nbsp; &nbsp; &nbsp; &nbsp; - 整整两个引号字符<br>&nbsp; &nbsp; &nbsp; &nbsp; - 在两个引号字符之间没有特殊字符,特殊字符为下列中的<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 一个: &lt;&gt;()@^|<br>&nbsp; &nbsp; &nbsp; &nbsp; - 在两个引号字符之间有至少一个空白字符<br>&nbsp; &nbsp; &nbsp; &nbsp; - 在两个引号字符之间有至少一个可执行文件的名称。<br><br>&nbsp; &nbsp; 2. &nbsp;否则,老办法是,看第一个字符是否是一个引号字符,如果<br>&nbsp; &nbsp; &nbsp; &nbsp; 是,舍去开头的字符并删除命令行上 的最后一个引号字符,<br>&nbsp; &nbsp; &nbsp; &nbsp; 保留最后一个引号字符之后的文字。<br><br>如果 /D 未在命令行上被指定,当 CMD.EXE 开始时,它会寻找<br>以下 REG_SZ/REG_EXPAND_SZ 注册表变量。如果其中一个或<br>两个都存在,这两个变量会先被执行。<br><br>&nbsp; &nbsp; HKEY_LOCAL_MACHINE/Software/Microsoft/Command Processor/AutoRun<br><br>&nbsp; &nbsp; &nbsp; &nbsp; 和/或<br><br>&nbsp; &nbsp; HKEY_CURRENT_USER/Software/Microsoft/Command Processor/AutoRun<br><br>命令扩展是按默认值启用的。您也可以使用 /E:OFF,为某一<br>特定调用而停用扩展。您可以在机器上和/或用户登录会话上<br>启用或停用 CMD.EXE 所有调用的扩展,这要通过设置使用<br>REGEDT32.EXE 的注册表中的一个或两个 REG_DWORD 值:<br><br>&nbsp; &nbsp; HKEY_LOCAL_MACHINE/Software/Microsoft/Command Processor/EnableExtensions<br><br>&nbsp; &nbsp; &nbsp; &nbsp; 和/或<br><br>&nbsp; &nbsp; HKEY_CURRENT_USER/Software/Microsoft/Command Processor/EnableExtensions<br><br>到 0x1 或 0x0。用户特定设置比机器设置有优先权。命令行<br>开关比注册表设置有优先权。<br><br>命令行扩展包括对下列命令所做的更改和/或添加:<br><br>&nbsp; &nbsp; DEL 或 ERASE<br>&nbsp; &nbsp; COLOR<br>&nbsp; &nbsp; CD 或 CHDIR<br>&nbsp; &nbsp; MD 或 MKDIR<br>&nbsp; &nbsp; PROMPT<br>&nbsp; &nbsp; PUSHD<br>&nbsp; &nbsp; POPD<br>&nbsp; &nbsp; SET<br>&nbsp; &nbsp; SETLOCAL<br>&nbsp; &nbsp; ENDLOCAL<br>&nbsp; &nbsp; IF<br>&nbsp; &nbsp; FOR<br>&nbsp; &nbsp; CALL<br>&nbsp; &nbsp; SHIFT<br>&nbsp; &nbsp; GOTO<br>&nbsp; &nbsp; START (同时包括对外部命令调用所做的更改)<br>&nbsp; &nbsp; ASSOC<br>&nbsp; &nbsp; FTYPE<br><br>有关详细信息,请键入 HELP 命令名。<br><br>延迟变量环境扩展不按默认值启用。您可以用/V:ON 或 /V:OFF<br>命令行开关,为 CMD.EXE 的某个调用而启用或停用延迟环境变量扩充。<br>您可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有<br>调用的完成,这要通过设置使用 REGEDT32.EXE 的注册表中的<br>一个或两个 REG_DWORD 值:<br><br>&nbsp; &nbsp; HKEY_LOCAL_MACHINE/Software/Microsoft/Command Processor/DelayedExpansion<br><br>&nbsp; &nbsp; &nbsp; &nbsp; 和/或<br><br>&nbsp; &nbsp; HKEY_CURRENT_USER/Software/Microsoft/Command Processor/DelayedExpansion<br><br>到 0x1 或 0x0。用户特定设置比机器设置有优先权。命令行开关<br>比注册表设置有优先权。<br><br>如果延迟环境变量扩充被启用,惊叹号字符可在执行时间,被用来<br>代替一个环境变量的数值。<br><br>文件和目录名完成不按默认值启用。您可以用 /F:ON 或 /F:OFF<br>命令行开关,为 CMD.EXE 的某个调用而启用或停用文件名完成。 您可以<br>在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有调用的<br>完成,这要通过设置使用 REGEDT32.EXE 的注册表中的一个或两个<br>REG_DWORD 值:<br><br>&nbsp; &nbsp; HKEY_LOCAL_MACHINE/Software/Microsoft/Command Processor/CompletionChar<br>&nbsp; &nbsp; HKEY_LOCAL_MACHINE/Software/Microsoft/Command Processor/PathCompletionChar<br><br>&nbsp; &nbsp; &nbsp; &nbsp; 和/或<br><br>&nbsp; &nbsp; HKEY_CURRENT_USER/Software/Microsoft/Command Processor/CompletionChar<br>&nbsp; &nbsp; HKEY_CURRENT_USER/Software/Microsoft/Command Processor/PathCompletionChar<br><br>由一个控制字符的十六进制值作为一个特定参数(例如,0x4 是<br>Ctrl-D,0x6 是 Ctrl-F)。 用户特定设置优先于机器设置。命令行开关<br>优先于注册表设置。<br><br>如果完成是用 /F:ON 命令行开关启用的,两个要使用的控制符是: 目录名<br>字完成用 Ctrl-D, 文件名完成用 Ctrl-F。 要停用注册表中的某个<br>字符,请用空格(0x20)的数值,因为此字符不是控制字符。<br><br>如果键入两个控制字符中的一个,完成会被调用。完成功能将<br>路径字符串带到光标的左边,如果没有通配符,将通配符附加<br>到左边,并建立相符的路径列表。然后,显示第一个相符的路<br>径。如果没有相符的路径,则发出嘟嘟声,不影响显示。之后,<br>重复按同一个控制字符会循环显示相符路径的列表。将 Shift 键<br>跟控制字符同时按下,会倒着显示列表。如果对该行进行了任<br>何编辑,并再次按下控制字符,保存的相符路径的列表会被丢弃,<br>新的会被生成。如果在文件和目录名完成之间切换,会发生<br>同样现象。两个控制字符之间的唯一区别是文件完成字符符合<br>文件和目录名,而目录完成字符只符合目录名。如果文件完成<br>被用于内置式目录命令(CD、MD 或 RD),就会使用目录完成。<br><br>将引号将相符路径括起来,完成代码可以正确处理含有空格<br>或其他特殊字符的文件名。同时,如果备份,然后从行内调用<br>文件完成,完成被调用是位于光标右方的文字会被丢弃。<br><br>需要引号的特殊字符是:<br>&nbsp; &nbsp; &nbsp;&lt;space&gt;<br>&nbsp; &nbsp; &nbsp;&amp;()[]{}^=;!'+,`~
 
大概明白了! 谢谢![:)]
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
677
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部