windows - 为什么这个 Windows 批处理脚本找不到程序 net.exe?

标签 windows batch-file command-line

我正在创建一个非常简单的批处理脚本,用于根据用户输入映射驱动器并首先检查驱动器是否不存在。

@echo off
:EnterInfo
set /P path=Please Enter The Path You Want To Map(EG: \\server\folder)          
set /P z=Please Chose A drive Letter To Map.(EG Z)  
goto :CheckExist

:CheckExist
%z%:\
pause
if exist %z%:\ (
    set /P Sure=A Drive Is Already Using Drive Letter %path%:\ Are You Sure You Want To Replace It?[Y/N]
    if /I "%Sure%" EQU "Y" goto :SetDrive
    if /I "%Sure%" EQU "N" exit)
goto :SetDrive

:SetDrive
C:
dir
net use z: "%path%"
pause

这是到目前为止的代码。 我收到一个错误:'net' 不被识别为内部或外部命令, 当脚本到达 (Net use Z: "%path%") 尽管如果我在 cmd 窗口中运行它,命令的输入将起作用。

我已经检查了脚本的位置,它从 C:\Users\%username%\运行,就像 cmd 框也会默认它的位置一样。 我真的很困惑为什么它不识别网络使用。提前致谢

最佳答案

问题是这一行:

set /P path=Please Enter The Path You Want To Map(EG: \\server\folder)          

PATH 环境变量已被 Windows 使用。它告诉命令解释器在哪里可以找到像 net.exe 这样的程序,它位于您的 sys(tem32|wow64) 文件夹中。您不能随心所欲地覆盖它,然后期望一切都能正常工作。您将变量 PATH 设置为您希望用户映射的驱动器的网络路径,这会覆盖实际的 PATH 变量。

解决方案:使用不同的变量名,比如 mypath

关于windows - 为什么这个 Windows 批处理脚本找不到程序 net.exe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41898738/

相关文章:

windows - 如何使用 Windows 批处理增加文件夹名称?

java - 使用外部 jar 文件从命令行运行 java 应用程序

php - 在 Hostgator 上将 php 5.4 更改为 5.5

command-line - tf.exe 和 tfpt.exe 如何根据执行目录与 TFS 实例建立连接?

powershell - 系统找不到指定的文件 - 任务计划程序

c - 如何在用 C 编写的 CGI 应用程序中使用系统命令执行批处理脚本,通过 Web 浏览器(Apache 服务器)执行

c++ - 命令提示符可以显示unicode字符吗?

windows - vmware:无法使用 NAT IP 地址 ping,但可以 ping 物理 IP

python - 如何正确批量上报退出状态?

windows - 如何在插入模式下改变 Vim 文本指针的大小?