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

[其他] 批处理之疑点

本人是在学校机房中发现的:

运行写好的bat批处理文件,提示 例如“net”不是内部或外部命令,也不是可运行的程序和批处理文件。?
查询得知,是在环境变量之系统变量path路径中缺少c:\windows\system32 路径值。可以通过在系统变量path中添加此路径解决。
或是在批处理文件中,加入 start c:\windows\system32\cmd.exe,发现其后的命令都得不到执行。

1、可不可通过批处理添加 c:\windows\system32 到系统变量中?

2、在批处理中,start c:\windows\system32\cmd.exe 后,以后的命令都可以执行?

1、
  1. path c:\windows\system32;%path%
复制代码
  1. set "path=c:\windows\system32;%path%"
复制代码
这两句是基本等价的,只是第二个可能稍严谨一点,因为 %path% 也许含有特殊字符。最严谨的办法还是开启变量延迟后再赋值
  1. setlocal enabledelayedexpansion
  2. path c:\windows\system32;!path!
复制代码
2、不是,cmd 找到外部命令有几种途径:
  1. 人为指定所在路径
  2. 当前工作路径下存在同名可执行文件
  3. path 的路径中存在同名可执行文件
复制代码
执行 start c:\windows\system32\cmd.exe 后,工作路径还是当前路径,所以和 start 前的状态没啥区别

TOP

回复 2# CrLf
你说的这个操作,是不是直接添加到path环境变量中?还是只是作用在这个批处理的过程中?

TOP

返回列表