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 cd
zonder 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 cd
op zichzelf de huidige werkmap tonen.
Voor UNIX en soortgelijke systemen, zal pwd
dezelfde taak uitvoeren. U kunt onder sommige shells ook de shell-variabele $PWD
gebruiken. 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 .bat
bestand onder System32
, laten we het copypath.bat
noemen. 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 copypath
overal 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 chdir
of cd
het 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 cd
voor het werkende huidige pad.
Op Linux, pwd
voor het huidige werkpad.