내가 자식이 출력에 줄 바꿈이 포함됩니다 확실 해요, 그래서 당신이 SET/P있어 경우에도 "
를 인쇄하려면 출력은 다음과 같습니다
"v1.0
"
난에 간단한 해결책을 믿는다 문제는 FOR/F를 사용하여 git 명령의 출력을 캡처 한 다음 루프 내에 인용 된 값을 쓰는 것입니다.
당신은 START와 자식, 다음 종료를 시작하고 싶었 : 아래
@echo off
cd /d "c:path to project directory"
for /f "delims=" %%A in ('git describe') echo "%%A" >file.txt
는 게시 된 코드를 사용하여 몇 가지 문제가 있습니다./K 옵션을 사용 했으므로 명령 실행 후 새 cmd 세션이 계속 활성화되어 EXIT 명령을 추가해야했습니다./C 옵션을 사용하는 것이 훨씬 간단합니다.
start cmd.exe /c "git describe >>"file.txt""
그러나 START는 전혀 필요하지 않습니다. 당신은 단순히 당신은 줄 바꿈없이 하나의 "
를 출력 SET/P를 사용하려고 현재 세션
git describe >>"file.txt"
에서 직접 명령을 실행할 수 있습니다. SET/P에 odd rules for how it handles leading quotes, white space, and =
이 있기 때문에 실패했습니다.
의
중 하나의 파일에 하나의 "
의 출력을 리디렉션하는 데 사용 될 수있는 다음과 같은 : 당신은 이상한 따옴표가 선회에 대해 걱정할 필요가 없습니다 그래서 나는 앞에 리디렉션을 넣어
<nul >file.txt set /p ="""
<nul >file.txt set /p "=""""
리터럴 문자열로 리디렉션. 끝에 리디렉션을 넣으면 따옴표 중 하나를 탈출해야합니다. 그것은
git-descr
(확장자) 이름없는 당신의
%PATH%
에 저장하고 명령
git descr
로 전화 : 당신은 또한 (심지어 Windows의 경우) 실제 bash는 스크립트를 작성 고려할 수
set /p =^""" <nul >file.txt
set /p =""^" <nul >file.txt
set /p ^"="""" <nul >file.txt
set /p "="^""" <nul >file.txt
set /p "="""^" <nul >file.txt
왜'start'와'cmd/K'를 사용하여'git describe'를 실행하고 있습니까? 나는 두 가지를 모두 제거 할 수 있다고 생각합니다. – aschipfl
2 투표 또는 가까운 투표를 이해하지 못합니다. OP는 기존 코드를 제공하는 전반적인 목표를 명시하고 작동하지 않는 코드의 한 측면에 대한 특정 프로그래밍 질문을 요청했습니다. 모두 완벽하게 나에게 합리적이며, 우리가이 공동체에서 찾고 있다고 생각하는 것. – dbenham