Ik probeer met cmd naar een map te gaan en vervolgens een batchbestand uit te voeren
bijv.
cmd /k cd "C:\myfolder"
startbatch.bat
Ik heb het ook geprobeerd (zonder succes)
cmd cd /k cd "C:\myfolder" | startbatch.bat
Hoewel de eerste regel (cmd /k) goed lijkt te werken, wordt de tweede opdracht nooit uitgevoerd. Ik gebruik Vista als besturingssysteem
Antwoord 1, autoriteit 100%
De juiste syntaxis is:
cmd /k "cd c:\myfolder & startbatch.bat"
Antwoord 2, autoriteit 17%
ssg heeft al het juiste antwoord gepost. Ik zou alleen /d switch toevoegen aan de opdracht cd
(bijv. cd /d drive:\directory
). Dit zorgt ervoor dat de opdracht werkt als de huidige map zich op een ander station bevindt dan de map waarnaar u wilt cd’en.
Antwoord 3, autoriteit 4%
cmd cd /k "cd C:\myfolder; startbatch.bat"
of waarom voer je niet cmd /k c:\myfolder\startbatch.bat
uit, en doe je cd c:\myfolder
in het .bat-bestand?
Antwoord 4, autoriteit 4%
Ik zie geen antwoord dat dit adresseert, dus als iemand toegang nodig heeft tot een map met ruimte in de naam, kunt u bijvoorbeeld extra aanhalingstekens toevoegen
cmd.exe /K """C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"" & powershell.exe"
Vanuit PowerShell moet u de aanhalingstekens escapen met het aanhalingsteken `
cmd.exe /K "`"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat`" & powershell.exe"
Let op de aanhalingstekens met escapetekens
`"
binnen de padtekenreeks:
"`"C:\my path\`""
Dit voert het juiste commando uit in cmd
, d.w.z. het pad tussen aanhalingstekens dat zou moeten werken.
De voorbeeldopdracht hierboven initialiseert de opdrachtprompt van de MSVC-ontwikkelaar en gaat terug naar PowerShell, waarbij de omgeving wordt geërfd en toegang wordt verleend tot de MSVC-tools.
Antwoord 5, autoriteit 2%
U kunt &
of &&
gebruiken als scheidingsteken voor opdrachten in Windows.
Voorbeeld:
cmd cd /K "cd C:\myfolder && startbatch.bat"
Antwoord 6
Ik geef dit als antwoord omdat ik deze vraag in een opmerking heb gezien en nog niet kan reageren.
cmd /k "cd c:\myfolder & startbatch.bat"
werkt, en als je spaties hebt:
cmd /k "cd "c:\myfolder" & startbatch.bat"
Zoals ik het begrijp, wordt het commando aan cmd doorgegeven als "cd "c:\myfolder" & startbatch.bat"
, dat vervolgens wordt opgesplitst in cd "c:\myfolder"
&
startbatch.bat
waarna de resterende " "
het pad als tekenreeks verzorgt.
Je kunt ook &&
, |
en ||
gebruiken, afhankelijk van wat je wilt bereiken.