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