Hvorfor kan dette Windows Batch script ikke finde programmet net.exe?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg skaber, hvad der var meningen at være et meget simpelt batch script til at kortlægge et drev baseret på brugerindgang og kontrollere, at drevet ikke eksisterer først.


@echo off
:EnterInfo
set /P path=Please Enter The Path You Want To Map(EG: \serverfolder)          
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


Her er koden hidtil.
Jeg får en fejl: 'net' er ikke anerkendt som en intern eller ekstern kommando,
når scriptet kommer til (Netbrug Z: '\% path\%')
Selvom input til kommandoen ville fungere, hvis jeg skulle køre den i et cmd vindue.


Jeg har kontrolleret placeringen af ​​scriptet, og det kører fra C: \ Users \\% brugernavn\% \ som en cmd-boks, som standard er det også s placering.
Jeg er virkelig forvirret over hvorfor det ikke anerkender netbrug. Tak på forhånd

Bedste reference


Problemet er denne linje:


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


Miljøvariablen PATH bruges allerede af Windows. Det fortæller kommandotolken, hvor man finder programmer som net.exe, som er i din sys(tem32|wow64) mappe. Du kan ikke overskrive det som du vil, og forventer at alt fungerer korrekt efterpå. Du indstiller variablen PATH for at være netværksbanen for det drev, du vil have brugeren til at kortlægge, som overskriver den faktiske PATH]] variabel.


Løsning: Brug et andet variabelt navn, som f.eks. mypath.