ut0 发表于 2023-10-28 19:27:52

NET,CMD等命令调用时提示找不到文件,只能在SYSTEM32文件夹下才能运行

本人有些批处理,然后里面会用到NET,调用到CMD等命令之前在任意目录下,都可以直接正常运行
然后今天在有台电脑上,发现调用到CMD,NET等命令时,提示找不到文件之类的提示,然后必须在SYSTEM32文件夹下面才可以正常运行

然后尝试搜索了一下,有些回答是说环境变量的问题,但是我看了下,也没看到什么异常的地方,
请教各位㚐,问题是出在哪里呢?

yyz2191958 发表于 2023-10-28 19:57:11

那就加上:
cd /d C:\Windows\System32

邪恶海盗 发表于 2023-10-28 19:57:35

为毛不把批处理发上来???

hua_wuxin 发表于 2023-10-28 20:43:39

这台电脑的环境变量“path”被改乱了呗,变量值中的C:\Windows和C:\Windows\system32都没有了
打开命令提示符窗口执行set path就能看到了

blank007 发表于 2023-10-28 21:01:21

本帖最后由 blank007 于 2023-10-28 21:02 编辑

hua_wuxin 发表于 2023-10-28 20:43
这台电脑的环境变量“path”被改乱了呗,变量值中的C:\Windows和C:\Windows\system32都没有了
打开命令提 ...
是这样的。我曾乱改 path 环境变量,结果有些程序不能运行了。改回来之后就正常了。

l3429900 发表于 2023-10-28 22:32:43

在环境变量中,加入system32目录

fulibo 发表于 2023-10-28 22:42:00

C:\Windows\System32
添加到环境里面!

nttwqz 发表于 2023-10-28 22:43:35

在前面加一句试试,如果正常,那就是path变量异常
path %path%;C:\Windows;C:\Windows\System32

nathan6498 发表于 2023-10-28 23:15:28

加上:cd /d C:\Windows\System32

ut0 发表于 2023-10-29 10:42:56

yyz2191958 发表于 2023-10-28 19:57
那就加上:
cd /d C:\Windows\System32

这样是可以的,但是我想知道出问题的具体原因并解决

ut0 发表于 2023-10-29 10:44:43

hua_wuxin 发表于 2023-10-28 20:43
这台电脑的环境变量“path”被改乱了呗,变量值中的C:\Windows和C:\Windows\system32都没有了
打开命令提 ...

但奇怪的是,变量里有这些,所以我说没看到什么异常的地方

ut0 发表于 2023-10-29 10:45:47

l3429900 发表于 2023-10-28 22:32
在环境变量中,加入system32目录

变量里是有的

ut0 发表于 2023-10-29 10:46:27

fulibo 发表于 2023-10-28 22:42
C:\Windows\System32
添加到环境里面!

变量里有这些

ut0 发表于 2023-10-29 10:47:26

nttwqz 发表于 2023-10-28 22:43
在前面加一句试试,如果正常,那就是path变量异常

加了之后是运行正常了,是变量异常,但奇怪的是变量里面有SYSTEM32

ut0 发表于 2023-10-29 11:01:36

本帖最后由 ut0 于 2023-10-29 16:00 编辑

就是变量里有systemroot,system32等设置,还是提示错误,所以觉得很奇怪,也找不到问题出在哪里





运行set path和set之后,显示的是这些
C:\WINDOWS\system32>set path
Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;%SYSTEMROOT%\System32\OpenSSH\;C:\Program Files (x86)\Common Files\THSOFT Shared;C:\Users\DELL\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\Common Files\THSOFT Shared
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

C:\WINDOWS\system32>set
ADSK_CLM_WPAD_PROXY_CHECK=FALSE
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\DELL\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=DELL-PC2
ComSpec=C:\WINDOWS\system32\cmd.exe
DriverData=C:\Windows\System32\Drivers\DriverData
HOMEDRIVE=C:
HOMEPATH=\Users\DELL
LOCALAPPDATA=C:\Users\DELL\AppData\Local
LOGONSERVER=\\DELL-PC2
NUMBER_OF_PROCESSORS=12
OS=Windows_NT
Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;%SYSTEMROOT%\System32\OpenSSH\;C:\Program Files (x86)\Common Files\THSOFT Shared;C:\Users\DELL\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\Common Files\THSOFT Shared
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=AMD64 Family 25 Model 80 Stepping 0, AuthenticAMD
PROCESSOR_LEVEL=25
PROCESSOR_REVISION=5000
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
PUBLIC=C:\Users\Public
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\Users\DELL\AppData\Local\Temp
TMP=C:\Users\DELL\AppData\Local\Temp
USERDOMAIN=DELL-PC2
USERDOMAIN_ROAMINGPROFILE=DELL-PC2
USERNAME=DELL
USERPROFILE=C:\Users\DELL
windir=C:\WINDOWS


ut0 发表于 2023-10-29 11:01:51

本帖最后由 ut0 于 2023-10-29 11:08 编辑

邪恶海盗 发表于 2023-10-28 19:57
为毛不把批处理发上来???
现在发上来了

hua_wuxin 发表于 2023-10-29 12:07:02

ut0 发表于 2023-10-29 10:47
加了之后是运行正常了,是变量异常,但奇怪的是变量里面有SYSTEM32

加了之后正常说明批处理的实际运行环境里缺这些 这个环境中的变量值跟自己打开的命令提示符窗口中的不一致
你在批处理最前面加上set和pause后在那台电脑上运行看看path变量呢?

nathan6498 发表于 2023-10-29 13:21:28

学习学习

ut0 发表于 2023-10-29 16:06:03

hua_wuxin 发表于 2023-10-29 12:07
加了之后正常说明批处理的实际运行环境里缺这些 这个环境中的变量值跟自己打开的命令提示符窗口中的不一 ...

是的,但问题是为什么批处理中变量和系统的变量不一致,而且系统变量里看起来都是正常的

加了set和pause之后是这样显示的,中间也显示是有%systemroot\system32%的,但还是报错


hua_wuxin 发表于 2023-10-29 16:46:50

本帖最后由 hua_wuxin 于 2023-10-29 18:06 编辑

你检查下注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment下Path环境变量的类型。系统初始类型应该是REG_EXPAND_SZ,但是好像有什么东西(某个常见软件的安装程序?)会把它改成REG_SZ。如果被改成了REG_SZ,那么数据里就不能用%SystemRoot%,而必须直写为C:\Windows。或者把它删掉重建为REG_EXPAND_SZ也行。


ut0 发表于 2023-10-29 18:17:18

hua_wuxin 发表于 2023-10-29 16:46
你检查下注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment下Path ...

非常感谢回复和指点,我这下看到了,正常的环境变量下,path在命令行里的显示,不应该还是显示的变量,应该是显示的具体路径了。

但注册表的问题也没法查看了,因为电脑已经被人拿走了{:1_188:}

nttwqz 发表于 2023-10-29 18:47:22

hua_wuxin 发表于 2023-10-29 16:46
你检查下注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment下Path ...

原来是注册表类型问题,涨姿势了。
不知,删除path变量再重建是否能恢复正常。

千城 发表于 2023-12-8 11:02:33

我感觉就是环境变量的问题

无犹启动 发表于 2024-2-17 10:35:31

学习学习

tilltotell007 发表于 2024-2-17 10:46:26

学习了

无犹启动 发表于 2024-2-17 17:21:26

加上:cd /d C:\Windows\System32

laozhao 发表于 2024-2-17 18:24:18

这个我清楚,是装了清华天河后,自动添加的路径有问题

清华天河的路径是带有空格的,这样的路径必须要用双引号括起来,然而清华天河软件并没有考虑到这个问题,只是机械地把自己的带空格路径加到path变量中,从而导致了整个path环境变量的失效

解决这个问题的方法就是把path变量中的所有带空格的路径两边加上双引号(半角英文)

hehuiying 发表于 2024-4-14 15:35:52

谢谢分享

无犹启动 发表于 2024-4-21 14:43:22

谢谢分享
页: [1]
查看完整版本: NET,CMD等命令调用时提示找不到文件,只能在SYSTEM32文件夹下才能运行