Windows shell-opdracht om het volledige pad naar de huidige map te krijgen?

Is er een Windows-opdrachtregelopdracht die ik kan gebruiken om het volledige pad naar de huidige werkmap te krijgen?

Hoe kan ik dit pad ook opslaan in een variabele die in een batchbestand wordt gebruikt?


Antwoord 1, autoriteit 100%

Gebruik cdzonder argumenten als je de shell rechtstreeks gebruikt, of %cd%als je het in een batchbestand wilt gebruiken (het gedraagt zich als een omgevingsvariabele).


Antwoord 2, autoriteit 26%

U kunt als volgt een batch-/omgevingsvariabele instellen:

SET var=%cd%
ECHO %var%

voorbeeld screenshot van een Windows 7 x64 cmd.exe.

Update:als u een SET var = %cd%doet in plaats van SET var=%cd%, hieronder is wat er gebeurt. Met dank aan jeb.

De huidige map vastleggen uit een batchbestand


Antwoord 3, autoriteit 12%

Citeer de Windows-help voor de opdracht set(set /?):

Als opdrachtextensies zijn ingeschakeld, zijn er verschillende dynamische
omgevingsvariabelen die kunnen worden uitgebreid, maar die niet worden weergegeven in
de lijst met variabelen weergegeven door SET. Deze variabele waarden zijn:
dynamisch berekend telkens wanneer de waarde van de variabele wordt uitgebreid.
Als de gebruiker expliciet een variabele definieert met een van deze namen, dan:
die definitie zal de hieronder beschreven dynamische overschrijven:
%CD% - breidt uit naar de huidige directoryreeks.
%DATE% - breidt uit naar de huidige datum met hetzelfde formaat als de DATE-opdracht.
%TIME% - breidt uit naar de huidige tijd met hetzelfde formaat als de TIME-opdracht.
%RANDOM% - breidt uit naar een willekeurig decimaal getal tussen 0 en 32767.
%ERRORLEVEL% - breidt uit naar de huidige ERRORLEVEL-waarde
%CMDEXTVERSION% - breidt uit naar de huidige Command Processor Extensions
  versienummer.
%CMDCMDLINE% - breidt uit naar de originele opdrachtregel die de . aanriep
  Opdrachtverwerker.

Let op het %CD% - expands to the current directory string.gedeelte.


Antwoord 4, autoriteit 6%

Op Unix?

pwd


Antwoord 5, autoriteit 5%

Dit heeft altijd voor mij gewerkt:

SET CurrentDir="%~dp0"
ECHO The current file path this bat file is executing in is the following:
ECHO %CurrentDir%
Pause

Antwoord 6, autoriteit 5%

Voor Windows kunnen we gebruiken

cd

en voor Linux

pwd

opdracht is aanwezig.


Antwoord 7, autoriteit 2%

Voor Windows zal cdop zichzelf de huidige werkmap tonen.

Voor UNIX en soortgelijke systemen, zal pwddezelfde taak uitvoeren. U kunt onder sommige shells ook de shell-variabele $PWDgebruiken. Ik weet niet zeker of Windows het verkrijgen van de huidige werkdirectory via een shell-variabele ondersteunt of niet.


Antwoord 8, autoriteit 2%

Op Windows:

CHDIRToont de naam van of wijzigt de huidige map.

In Linux:

PWDToont de naam van de huidige map.


Antwoord 9

Maak een .batbestand onder System32, laten we het copypath.batnoemen. De opdracht om het huidige pad te kopiëren zou kunnen zijn :

echo %cd% | clip

Uitleg:

%cd%geeft je het huidige pad

CLIP
Description:
    Redirects output of command line tools to the Windows clipboard.
    This text output can then be pasted into other programs.
Parameter List:
    /?                  Displays this help message.
Examples:
    DIR | CLIP          Places a copy of the current directory
                        listing into the Windows clipboard.
    CLIP < README.TXT   Places a copy of the text from readme.txt
                        on to the Windows clipboard.

Nu is copypathoveral beschikbaar.


Antwoord 10

Op basis van de vervolgvraag (sla de gegevens op in een variabele) in de opmerkingen bij het chdir-bericht, wed ik dat hij het huidige pad wil opslaan om het te herstellen na het wijzigen van mappen.

De oorspronkelijke gebruiker zou naar “pushd” moeten kijken, die van directory verandert en de huidige op een stapel duwt die kan worden hersteld met een “popd”. Op elke moderne Windows cmd-shell is dat de juiste keuze bij het maken van batchbestanden.

Als je echt het huidige pad moet pakken, dan hebben moderne cmd-shells ook een %CD%-variabele die je gemakkelijk in een andere variabele kunt stoppen ter referentie.


Antwoord 11

In een Windows-opdrachtprompt zal chdirof cdhet volledige pad van de huidige werkmap in de console afdrukken.

Als we het pad willen kopiëren, kunnen we gebruiken: cd | clip.


Antwoord 12

@echo off
for /f "usebackq tokens=*" %%x in (`chdir`) do set var=%%x
echo The currenct directory is: %var%

Maar natuurlijk, het antwoord van gmaran23 is veel gemakkelijker.


Antwoord 13

Als een van de mogelijke codes

   echo off
    for /f "usebackq tokens=* delims= " %%x in (`chdir`) do set var=%var% %%x
    echo The current directory is: "%var:~1%"

Antwoord 14

Typ in Windows cdvoor het werkende huidige pad.

Op Linux, pwdvoor het huidige werkpad.

Other episodes