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

[文件操作] 咨询Start命令参数“I”的用法

研究了“START    /I”很久,但一直不得其道,很想搞清楚“START    /I ”的用法。
“I”参数的解释如下:
START    I           新环境是传递给 cmd.exe 的原始环境,而不是当前环境。
新环境、原始环境、当前环境分别是什么?能否举例说明?
最好举一个实例来说明如何应用“START   /I”。谢谢!

附带两个小问题,可以不回答:
1、START   "title"     在窗口标题栏中显示的标题。
这个标题是指给新建进程创建或命名为“title”,还是指“title”必须符合或命名为“title”?
前者是指作者有自由权,可以随意命名“title”,后者指命名权由程序自己决定。
这里是何种情况?请举例说明。因为有时候我发现我无法给新进程标题命名。
2、以下几个参数在一般使用中有什么意义?想了解下假如我运行一个bat的和其它bat的有什么区别。
    SEPARATE    在分开的空间内开始 16 位 Windows 程序
    SHARED      在分共享的空间内开始 16 位 Windows 程序
    LOW         在 IDLE 优先级类别开始应用程序
    NORMAL      在 NORMAL 优先级类别开始应用程序
    HIGH        在 HIGH 优先级类别开始应用程序
    REALTIME    在 REALTIME 优先级类别开始应用程序
    ABOVENORMAL 在 ABOVENORMAL 优先级类别开始应用程序
    BELOWNORMAL 在 BELOWNORMAL 优先级类别开始应用程序
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

本帖最后由 CrLf 于 2011-8-13 11:52 编辑

子进程默认继承父进程的变量环境,而用 start /i 启动的子进程不继承
  1. set test=123
  2. start cmd /v /k echo !test!
  3. start /i cmd /v /k echo !test!
复制代码
2

评分人数

TOP

“title”名字可以自定义,title设置的是cmd窗口的标题名,而不是启动的程序的标题名。

SEPARATE    在分开的空间内开始 16 位 Windows 程序
    SHARED      在分共享的空间内开始 16 位 Windows 程序
::这个两个不清楚,16位的进程可能没接触过,可能接触过都不知道它是16位的。
    LOW         在 IDLE 优先级类别开始应用程序
    NORMAL      在 NORMAL 优先级类别开始应用程序
    HIGH        在 HIGH 优先级类别开始应用程序
    REALTIME    在 REALTIME 优先级类别开始应用程序
    ABOVENORMAL 在 ABOVENORMAL 优先级类别开始应用程序
    BELOWNORMAL 在 BELOWNORMAL 优先级类别开始应用程序
::优先级可以在 任务管理器-进程选项卡中看到,以前设置过,不过似乎作用不大。
从上到下优先级增大,优先级越大,越早进入cpu缓存供cpu处理。

TOP

回复 3# Hello123World


CPU比较忙的时候才能体验到优先级
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3# Hello123World


    调高 explorer 优先级,或者降低那些大型软件的优先级,从此桌面不假死

TOP

原来如此,多谢楼上两位。
从此桌面不假死——很诱人。

TOP

总结一下:
  1. @echo off
  2. ::start /i 参数的应用。
  3. ::默认start打开的新cmd环境会继承原(start所在)cmd环境。有助于原始环境将变量参数传递给新环境。
  4. ::使用start /i 后,关闭继承通道,新cmd环境与原cmd环境不同。使得新cmd不受原cmd影响,获得相对独立环境。
  5. ::如何将变量参数从新环境传递回原始环境是个问题。
  6. ::环境指环境变量、延迟变量等。
  7. set test=新cmd继承原cmd环境。
  8. ::设置一个变量,观察该变量在两个环境中的变化。
  9. echo 新cmd环境与原cmd环境相同,新cmd继承原cmd环境。
  10. start cmd /v /k echo !test!
  11. pause
  12. echo 新cmd环境与原cmd环境不同,两者无关。
  13. start /i cmd /v /k if not defined test (echo 新环境与原环境无关。) else (echo !test!)
  14. pause
复制代码
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

找了好久关于 start /i参数讲解的教程,总算在这里找到和我有一样疑问的帖子了,这里真是个交流的好地方啊!

TOP

返回列表