2016-06-03 6 views
0

그래서 다른 디렉토리 (C :)에있는 파일에 현재 위치 (경로)를 기록하는 배치를 생성하려고합니다.현재 디렉토리를 저장하고 나중에 사용하십시오.

요즘에는 많은 접근법을 시도했지만 아무 것도 작동하지 않았기 때문에 하드 코딩하지 않아도됩니다. 변수에 cd 명령을 저장하면 문제가 해결 될 수 있다고 생각했습니다. 그리고 대신 내 "file_where_I_want_to_write"내 배치의 디렉토리에 표시의

setlocal enabledelayedexpansion 
for /f "delims=" %%i in ('cd') do set installation_path=%%i 
(
    echo [General] 
    echo bin: %installation_path%\bin 
    echo sys: %installation_path%\sys 
    echo. 
    ::etc 
)>"C:\file_where_I_want_to_write" 

을가

C 보여줍니다 : 돕는 \ WINDOWS \ system32를

덕분에 여기 내 시도 중 하나입니다 !

+1

cd는 현재 디렉토리를 제공하며 배치 파일이있는 디렉토리와 반드시 같지는 않습니다. 배치 파일을 어떻게 시작합니까? –

+0

@KlitosKyriacou 에코를 사용하여 – user3629077

+0

내 말은, 어떻게 실행합니까? 탐색기에서 파일을 두 번 클릭하여? 명령 프롬프트에서 이름을 입력하면됩니까? 후자 인 경우 이름을 입력하기 전에 CD를 디렉토리에 저장합니까? –

답변

0

목표를 올바르게 이해하면 아무 것도 실행할 필요가 없습니다. %cd%은 현재 디렉토리를 제공합니다. %~dp0은 배치 파일이 들어있는 디렉토리를 제공합니다.

echo %cd% > file_where_I_want_to_write 

댓글 질문에 따라 업데이트되었습니다. 직접 %~dp0을 사용하고 싶지 않은 경우 다른 것으로 지정하십시오. setlocalendlocal을 사용하여 배치 스크립트에 할당을 제한하십시오. %~dp0는 백 슬래시를 포함

@echo off 
setlocal 
set batchdir=%~dp0 
echo [General] > file_where_I_want_to_write 
echo bin: %batchdir%bin >> file_where_I_want_to_write 
echo sys: %batchdir%sys >> file_where_I_want_to_write 
echo. >> file_where_I_want_to_write 
endlocal 

참고.

+0

자, 에코의 내용을 어떻게 수정해야합니까? 어떻게 든 박쥐의 디렉토리를 저장해야합니다 .. – user3629077

+0

편집 된 원본. 잘하면 도움이됩니다. –

+0

Worked! Kevin에게 감사드립니다. 귀하의 도움은 높이 평가됩니다. – user3629077

0

cd 명령을 입력하면 현재 경로가 입력됩니다. 리디렉션> (쓰기) 또는 >> (추가)를 사용할 수 있습니다. 사용 :

cd > c:\your_path\file_where_I_want_to_write 
관련 문제