현재 디렉토리의 전체 경로를 얻는 Windows 셸 명령?


223

현재 작업 디렉토리의 전체 경로를 얻는 데 사용할 수있는 Windows 명령 행 명령이 있습니까?

또한 배치 파일에 사용되는 변수 에이 경로를 어떻게 저장할 수 있습니까?


find / dir / to / start / from -type f -ls이 형식은 날짜 형식을 숫자로 찾습니다. find / dir / to / start / from -type f -exec ls -l --time-style = "+ % Y % m % e % H : % M "{} \;

이 답변을 살펴보십시오. stackoverflow.com/a/52301748/2704032
Vishrant

답변:


356

cd쉘을 직접 사용하거나 %cd%배치 파일에서 사용하려는 경우 인수없이 사용하십시오 (환경 변수처럼 작동 함).


11
어떻게 않았다 당신은 그가에서 말하려고 있었는지 이해 ? 그리고 dos와 windows cmd에서 보통 "cd"
Rook

10
솔직히 말해서, 그들이 질문 한대로 물어볼 다른 어떤 것도 생각할 수 없었습니다.
Trevor Bramble

1
이 경로를 .bat 파일의 변수에 저장할 수 있습니까?
user62958

@unknown-처음에 원래 문제를 설명하면 더 나을 수 있습니다.
Rook

100

다음과 같이 배치 / 환경 변수를 설정할 수 있습니다.

SET var=%cd%
ECHO %var%

Windows 7 x64 cmd.exe의 샘플 스크린 샷

여기에 이미지 설명을 입력하십시오

업데이트 :SET var = %cd% 대신에다음을 수행하면됩니다SET var=%cd%. jeb에게 감사합니다.

여기에 이미지 설명을 입력하십시오

배치 파일에서 현재 디렉토리 캡처


2
질문에 따르면이 대답은 실제로 받아 들여야합니다.
René Nyffenegger

7
그러나 그것은하지 작업을 수행 SET var = %cd%변수의 값을 넣어 var<space>로하지 var. SET 명령에서 공백을 피해야합니다
jeb

1
질문에 따르면이 대답은 실제로 받아 들여야합니다.
shridutt kothari

51

set명령에 대한 Windows 도움말을 인용하십시오 (set /? ).

명령 확장이 활성화 된 경우 몇 가지 동적
확장 할 수 있지만 표시되지 않는 환경 변수
SET에 의해 표시되는 변수의리스트 이 변수 값은
변수 값이 확장 될 때마다 동적으로 계산됩니다.
사용자가 이러한 이름 중 하나를 사용하여 변수를 명시 적으로 정의하면
해당 정의는 아래 설명 된 동적 정의를 대체합니다.

% CD %-현재 디렉토리 문자열로 확장됩니다.

% DATE %-DATE 명령과 동일한 형식을 사용하여 현재 날짜로 확장합니다.

% TIME %-TIME 명령과 동일한 형식을 사용하여 현재 시간으로 확장합니다.

% RANDOM %-0에서 32767 사이의 임의의 10 진수로 확장됩니다.

% ERRORLEVEL %-현재 ERRORLEVEL 값으로 확장

% CMDEXTVERSION %-현재 명령 프로세서 확장으로 확장
    버전 번호.

% CMDCMDLINE %-호출 한 원래 명령 행으로 확장
    명령 프로세서.

%CD% - expands to the current directory string.부분을 주목하십시오 .


26

유닉스에?

암호


2
OP는 원래 "명령"을 요청했으며 OS를 지정하지 않았습니다. 이제 OS가 지정되었으므로이 답변은 더 이상 관련이 없습니다.
Tisch


17

이것은 항상 나를 위해 일했습니다 :

SET CurrentDir="%~dp0"

ECHO The current file path this bat file is executing in is the following:

ECHO %CurrentDir%

Pause

2
그것은 잘못된 일입니다-현재 디렉토리가 아닌 배치 스크립트의 경로를 찾습니다.
Harry Johnston

2
OP의 질문에 대답하고 내가 찾던 정확한 솔루션을 제공하여 업 보트되었습니다. 감사!
A-Diddy

잘 잡았다. 현재 디렉토리는 파일 위치 자체 대신 파일을 호출하는 명령을 참조 할 수 있습니다.
Tam Le

9

Windows의 경우 cd자체적으로 현재 작업 디렉토리가 표시됩니다.

UNIX 및 유사한 시스템의 pwd경우 동일한 작업을 수행합니다. $PWD일부 쉘 에서 쉘 변수를 사용할 수도 있습니다 . Windows가 쉘 변수를 통해 현재 작업 디렉토리를 가져 오는 것을 지원하는지 확실하지 않습니다.


그러나 왜 그의 현재 디렉토리를 보려면 "cd"가 필요한지 이해할 수 없습니다. 기본적으로 일로 표시됩니다. 만약 그가 그것을 바꾸었다면, 그는 "cd"가 무엇을 하는지를 확실히 알고있는 것보다.
Rook

아주 오래되었지만 완전성을 위해 : 그렇습니다. 창에는 이것에 대한 변수가 있습니다. 이름이 (추측 ...)%cd%
Stephan

8

Windows에서 :

CHDIR 현재 디렉토리의 이름을 표시하거나 변경합니다.

리눅스에서 :

PWD 현재 디렉토리의 이름을 표시합니다.


5

chdir post에 대한 주석의 후속 질문 (변수에 데이터 저장)을 기반으로 디렉토리를 변경 한 후 현재 경로를 저장하여 복원하려고합니다.

원래 사용자는 "pushd"를보고 디렉토리를 변경하고 현재 디렉토리를 "popd"로 복원 할 수있는 스택으로 푸시합니다. 배치 파일을 만들 때 사용하는 최신 Windows cmd 셸에서.

현재 경로를 실제로 가져와야 할 경우 최신 cmd 셸에는 % CD % 변수가있어 참조를 위해 다른 변수에 쉽게 넣을 수 있습니다.


5

크리에이트 .bat파일 아래를 System32, 우리가 그것을 이름을 보자 copypath.bat현재의 경로를 복사하는 명령을 할 수있다 :

echo %cd% | clip

설명 :

%cd% 현재 경로를 제공합니다

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.

이제 copyclip어디서나 사용할 수 있습니다.


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

그러나, 물론 , gmaran23의 대답은 훨씬 쉽게 하나입니다.


그의 대답은 틀 렸기 때문에 정의상 더 낫습니다. 공백이있는 경로에는 작동하지 않습니다.
Garric

tokens=*그 수정을 추가 합니다.
René Nyffenegger

2

Windows 명령 프롬프트에서 chdir또는 cd콘솔에서 현재 작업 디렉토리의 전체 경로를 인쇄합니다.

경로를 복사하려면 다음을 사용할 수 있습니다 cd | clip..


0

Windows cd에서 작동중인 현재 경로를 입력하십시오.

Linux pwd에서 현재 작업 경로


5
동일한 솔루션으로 이미 10 개의 답변이 있지만 더 많은 설명이 있습니다
jeb

0

가능한 코드 중 하나로

    echo off
    for /f "usebackq tokens=* delims= " %%x in (`chdir`) do set var=%var% %%x
    echo The current directory is: "%var:~1%"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.