[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 批处理如何做到命令后面的参数对顺序无要求?

我们知道,dir /on d:\和dir d: /on都可以实现命令,开关的位置不同,但是系统仍然区分了哪个是开关,哪个是参数,
请问系统是怎样做到的?

谢谢楼上!!
bat交流:群306191413

TOP

举个栗子:
  1. @echo off
  2. call :test /a 123
  3. echo;
  4. call :test 456 /b
  5. pause&exit
  6. :test
  7. setlocal disabledelayedexpansion
  8. set "m=0"
  9. for %%a in (%*) do (
  10. for /f "tokens=* delims=/-" %%z in ("%%a") do (
  11. if "%%a" neq "%%z" set "开关[%%a]=enable"
  12. )
  13. if not defined 开关[%%a] (
  14. set /a m+=1
  15. setlocal enabledelayedexpansion
  16. for %%z in (!m!) do endlocal&set "参数[%%z]=%%a"
  17. )
  18. )
  19. echo 取得的开关与参数如下:
  20. set 开关
  21. set 参数
  22. endlocal&exit/b
复制代码

TOP

本帖最后由 yoyobye 于 2013-4-27 15:48 编辑

有例子吗? 我见到的一般是if %1==** %2==** 对顺序有要求,它是怎样做到的?对顺序无要求

TOP

编程做到的

TOP

返回列表