Hoe gebruik ik spaties in de opdrachtprompt?

Hoe kan ik spaties in de Windows-opdrachtregel gebruiken?

cmd /C C:\Program Files (x86)\WinRar\Rar.exe a D:\Hello 2\File.rar D:\Hello 2\*.*

Antwoord 1, autoriteit 100%

Enkele aanhalingstekens zijn in dat geval niet voldoende. Je moet aanhalingstekens plaatsen rond elk pad en ook het hele commando tussen aanhalingstekens plaatsen:

cmd /C ""C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*""

Antwoord 2, autoriteit 31%

Ik kwam er net achter dat voor een geval waarin het pad het gebruik van witruimtetekens omvat, bijvoorbeeld wanneer ik toegang moet krijgen tot de app xyzwelke locatie is:

C:\Program Files\ab cd\xyz.exe

Als u dit wilt uitvoeren vanaf de cmd-prompt van Windows, moet u

. gebruiken

C:\"Program Files"\"ab cd"\xyz.exe

of

"C:\Program Files\ab cd\xyz.exe"

Antwoord 3, autoriteit 9%

Als dubbele aanhalingstekens het probleem niet oplossen, probeer dan bijvoorbeeld

dir /X ~1 c:\

om een ​​lijst met alternatieve bestands- of mapnamen te krijgen. Voorbeelduitvoer:

11/09/2014 12:54 AM             8,065  DEFAUL~1.XML Default Desktop Policy.xml
06/12/2014  03:49 PM    <DIR>          PROGRA~1     Program Files 
10/12/2014  12:46 AM    <DIR>          PROGRA~2     Program Files (x86)

Gebruik nu de korte bestands- of mapnaam van 8 tekens in de 5e kolom, b.v. PROGRA~1 of DEFAUL~1.XML, in uw commando’s. Bijvoorbeeld:

set JAVA_HOME=c:\PROGRA~1\Java\jdk1.6.0_45 

Antwoord 4, autoriteit 4%

Ik geef er de voorkeur aan om het commando in ()in te sluiten, wat een geldige batchis, waardoor het een beetje gemakkelijker te lezen is:

cmd /C ("C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*")

Antwoord 5, autoriteit 4%

Sluit de paden met spaties tussen dubbele aanhalingstekens.

cmd /C "C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*"

Antwoord 6, autoriteit 3%

Probeer complexe padnamen tussen dubbele aanhalingstekens te plaatsen (en voeg bestandsextensies toe aan het einde voor bestanden.)

Voor bestanden:

call "C:\example file.exe"

Voor telefoonboek:

cd "C:\Users\User Name\New Folder"

CMD interpreteert tekst met dubbele aanhalingstekens (“xyz”) als één string en tekst tussen enkele aanhalingstekens (‘xyz’) als een commando.
Bijvoorbeeld:

VOOR %%A in (‘dir /b /s *.txt’) do (‘commando’)

VOOR %%A in (‘dir /b /s *.txt’) do (echo “%%A”)

En een goede zaak, cmd is niet* hoofdlettergevoelig zoals bash. Dus “Nieuw bestand.txt” en “nieuw bestand.TXT” lijken erop.

*Opmerking: de %%A-variabelen in bovenstaande hoofdletters zijn hoofdlettergevoelig (%%A is niet gelijk aan %%a).


Antwoord 7

set "CMD=C:\Program Files (x86)\PDFtk\bin\pdftk"
echo cmd /K ""%CMD%" %D% output trimmed.pdf"
start cmd /K ""%CMD%" %D% output trimmed.pdf"

dit werkte voor mij in een batchbestand


Antwoord 8

Gewoon aanhalingsteken toevoegen

Voorbeeld:“C:\Gebruikers\Gebruikersnaam”

Hoop dat het is opgelost!


Antwoord 9

Spaties in de Commend Prompt (in een VBA Shell-opdrachtcoderegel)

Ik had een soortgelijk probleem dat uiteindelijk een spatie in de opdrachtprompt werd bij het automatiseren via VBA om de inhoud van het opdrachtvenster in een tekstbestand te krijgen. Deze thread was een van de vele die ik onderweg tegenkwam en die me niet helemaal de oplossing opleverden.

Dus dit kan anderen helpen met een soortgelijk probleem: aangezien de syntaxis met aanhalingstekens altijd moeilijk goed te krijgen is, denk ik dat het altijd nuttig is om enkele specifieke voorbeelden te tonen.
Het extra probleem dat je krijgt bij het gebruik van de opdrachtprompt in VBA via het Shell-ding, is dat de coderegel vaak geen foutmelding geeft als er iets misgaat: in feite misleidt een knipperen van het zwarte aanbevelingsvenster om te denken dat er iets is gedaan.

Als voorbeeld stel dat ik een map heb, met daarin een tekstbestand zoals op

C:\Alans Folder\test1.txt ( https://imgur.com/FELSdB6)

De spatie daar in de mapnaam geeft het probleem.

Zoiets zou werken, ervan uitgaande dat de map, AlansFolder, bestaat

Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
 Shell "cmd.exe /c ""ipconfig /all > C:\AlansFolder\test1.txt"""
End Sub

Dit werkt niet. (Het zal niet fout gaan).

Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
 Shell "cmd.exe /c ""ipconfig /all > C:\Alans Folder\test1.txt"""
End Sub

Als u aanhalingstekens rond het pad opneemt, werkt het

Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
 Shell "cmd.exe /c ""ipconfig /all > ""C:\Alans Folder\test1.txt"""""
End Sub

(Trouwens, als het tekstbestand niet bestaat, wordt het gemaakt).

Met het voordeel van achteraf kunnen we zien dat mijn oplossing ongeveer aansluit bij een aantal die al zijn gegeven..

Het omzetten van die coderegel naar een handmatig gegeven commando zouden we hebben

ipconfig /all > "C:\Alans Folder\test1.txt"

Dat lijkt te werken

Dit werkt ook

ipconfig /all > C:\AlansFolder\test1.txt

Dit niet

ipconfig /all > C:\Alans Folder\test1.txt

Deze definitieve vorm werkt ook en sluit aan bij de oplossing uit sacra . Je moet aanhalingstekens plaatsen rond elk pad en ook het hele commando tussen aanhalingstekens plaatsen ..

cmd.exe /c "ipconfig /all > "C:\Alans Folder\test1.txt""

Antwoord 10

Probeer aanhalingstekens te gebruiken.

cmd /C "C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*"

Antwoord 11

Het kan dit probleem oplossen met de opdracht cd, deze opdracht begrijpt spaties zonder dubbele aanhalingstekens en je kunt elk programma op deze manier aanroepen, bijvoorbeeld:

C:\Windows\system32>cd c:\Program Files\MongoDB\Server\3.2\bin

c:\Program Files\MongoDB\Server\3.2\bin>mongo
nu opdrachtprompt bel mongo.exe

LEAVE A REPLY

Please enter your comment!
Please enter your name here

18 + 10 =

Other episodes