找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 31530|回复: 13

[系统相关] 批处理环境变量与预处理,求教

[复制链接]
发表于 2018-10-12 20:30:28 | 显示全部楼层 |阅读模式
本帖最后由 白鹤隐云 于 2018-10-12 21:03 编辑

在一个批处理程序中改变环境变量,不会立即生效,退出之后再调用才是修改后的。
如:D盘目录下有一个note.exe
  1. setx path "%path%;D:" -m
  2. note.exe
复制代码
note无法运行。
但是如果我在批处理中修改环境变量,再调用exe文件,发现exe调用的环境变量已经是被修改过的。
如:
  1. setx path "%path%;D:" -m
  2. print.exe
复制代码
其中print.exe是编译过的批处理,用于调用note.exe,
结果是运行成功。

请问这是什么原理?属于预处理机制吗?
发表于 2018-10-12 20:40:18 | 显示全部楼层
批处理?是不是?
发表于 2018-10-12 20:41:34 | 显示全部楼层
所有的修改在当前都是立刻生效,但不知你的setx是什么意思
发表于 2018-10-12 20:45:52 | 显示全部楼层
  1. setx path "%path%;D:\note" -m
  2. set path "%path%;D:\note" -m
  3. echo %path%
复制代码
这样可以吗?
发表于 2018-10-12 20:46:13 | 显示全部楼层
回复 3# CreeperTeam


  对了,Setx我刚看过了一遍,很有可能是Setx出的问题,话说你为什么要永久设定呢?改了系统参数就麻烦了  毕竟你这只是个小程序
发表于 2018-10-12 20:46:38 | 显示全部楼层
回复 3# CreeperTeam


setx是个第三方命令行工具,可以用来修改环境变量
http://bcn.bathome.net/s/tool/index.html?key=setx
发表于 2018-10-12 20:46:59 | 显示全部楼层
回复 4# Batcher


    可以,算是个补丁文件吧
发表于 2018-10-12 20:47:35 | 显示全部楼层
回复 6# Batcher


    谢谢,看到了
 楼主| 发表于 2018-10-12 21:05:38 | 显示全部楼层
回复 4# Batcher


    万分抱歉……描述写错了(脑子有点昏),请看一下修正后的问题
 楼主| 发表于 2018-10-12 21:10:05 | 显示全部楼层
回复 9# tigerpower


    感谢,能否再帮我看一下修改后的问题?
发表于 2018-10-12 21:51:40 | 显示全部楼层
回复 6# Batcher

setx 系统自带工具,怎么成第三方的了,招安的?
发表于 2018-10-13 08:40:51 | 显示全部楼层
回复 12# xczxczxcz


    你错了!SETX不是系统工具
发表于 2018-10-13 10:13:51 | 显示全部楼层
回复 13# CreeperTeam


    我也以为不是,记得xp没有。但是刚才试了一下Win7有这个,位于
C:\Windows\SysWOW64
发表于 2018-10-13 11:47:10 | 显示全部楼层
回复 13# CreeperTeam


    无所谓对错,微软的系统也是在不断更新的嘛
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 18:34 , Processed in 0.020573 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表