Avatar billede bit-phreak Nybegynder
21. marts 2016 - 17:06 Der er 14 kommentarer og
1 løsning

forkert sti i batch script

Jeg har et simpelt windows batch script der ikke helt makker ret og har lige brug for lidt hjælp.

Selve scriptet ligger i en mappe på mit skrivebord og under en brugder der hedder "Doctor A"
dvs at den fulde sti til hvorfra scriptet køres er
c:\users\Doctor A\desktop\CyperPilot_Audit_Conf_External_Network\test.bat

inde i bacth filen har jeg følgende kommando som gerne skal åbne et powershell script der udfører en masse andre ting

powershell.exe -ExecutionPolicy Bypass "%~dp0\Audit_folders_and_regkeys.ps1"
   
men når jeg kører den kommando får jeg følgende fejl
   
The term 'C:\Users\Doctor' is not recognized as the name of a cmdlet,   
function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:16 + C:\Users\Doctor <<<<    A\Desktop\CyperPilot_Audit_Conf_External_Network\CyperP
ilot_Audit_Conf_External_Network\\Audit_folders_and_regkeys.ps1
+ CategoryInfo          : ObjectNotFound: (C:\Users\Doctor:String) [], Com mandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException


det ser ud som om den ikke kan finde den korrekte sti, da den kun kommer til "c:\users\doctor"

hvordan kommer jeg lige uden om dette?
Avatar billede claes57 Ekspert
21. marts 2016 - 17:18 #1
den kan bare ikke lide mellemrum i sti og filnavne. Det er en uvane.
Hvis du i kommandoprompt laver en dir på mappen og får vist den i kort form, så er det sikkert Doctor~1
Så generelt - alle steder hvor mappenavnet bruges, så erstat det med Doctor~1

alternativt omdøbes bruger til Doctor_A
Avatar billede olsensweb.dk Ekspert
21. marts 2016 - 17:26 #2
prøv at sætte dobbelt pling omkring Doctor A, som claes57 skriver kan dos ikke lide mellemrum
c:\users\"Doctor A"\desktop\CyperPilot_Audit_Conf_External_Network\test.bat
Avatar billede bit-phreak Nybegynder
21. marts 2016 - 17:34 #3
problemet er at jeg er nødt til at have en commando linje som kan bruges i et større miljø, hvor jeg ikke kan bestemme om der må være brugernavne med mellemrum i. og derfor er jeg nødt til at finde en løsning på dette
(jeg havde fanget at det var fordi at der var mellemrum i brugernavnet)

Når jeg benytter %~dp0 burde den så ikke kigge ned i samme mappe som jeg kører batch filen fra?
Avatar billede sonalias Seniormester
21. marts 2016 - 17:35 #4
Den pæne løsning er at bruge environment variables,
så C:\%homepath%\desktop osv giver det rigtige og skifter selv hvis du skifter brugernavn
Avatar billede jakobdo Ekspert
21. marts 2016 - 17:40 #5
Avatar billede bit-phreak Nybegynder
21. marts 2016 - 17:42 #6
ja det er helt klart en mulighed. men så begrænser / låser scriptet fast til at det SKAL køres fra desktoppen.

jeg vil gerne have så man kan kører scriptet fra en hvilken som helst mappe og hvor der både kan være med og uden mællemrum. og hvor det er lige gyldigt om man kører den fra desktop eller fx c:\kjsdf\...
Avatar billede jakobdo Ekspert
21. marts 2016 - 19:53 #7
Jamen er det så ikke et spørgsmål om at bruge relative stier ?
Avatar billede bit-phreak Nybegynder
21. marts 2016 - 20:09 #8
jeg er ikke helt med på hvad du mener.
hvis nu det ikke er gået op for jer. så er jeg lidt en noob til scripting :D
Avatar billede sonalias Seniormester
21. marts 2016 - 20:55 #9
Øhh kører du din bat fil fra cmd?? Du kan bare dobbeltklikke? Så kan du køre den alle steder fra?
Avatar billede bit-phreak Nybegynder
21. marts 2016 - 23:10 #10
naarj jeg kører den ikke fra cmd ;)
Avatar billede martens Guru
22. marts 2016 - 01:49 #11
et andet lille trick er at skrive hele kommandolinien i " "

a´la
"c:\users\Doctor A\desktop\CyperPilot_Audit_Conf_External_Network\test.bat"

det virker !
Avatar billede Spotgun Seniormester
22. marts 2016 - 07:54 #12
Hvis dit powershell script ligger i samme mappe som .bat-filen, så kan du gøre sådan her:

powershell.exe -ExecutionPolicy Bypass ".\Audit_folders_and_regkeys.ps1"

Det er også det Jakobdo mener med at bruge relative stier.
Avatar billede bit-phreak Nybegynder
22. marts 2016 - 09:45 #13
#spotgun det prøver jeg lige. det kunne godt ligne noget ala det jeg skulle bruge
Avatar billede bit-phreak Nybegynder
22. marts 2016 - 10:53 #14
det virkede.
det var lige det jeg var ude efter. vil du smide et svar spotgun
Avatar billede Spotgun Seniormester
22. marts 2016 - 11:02 #15
Værsgo.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester