Windows 배치 파일 - 출력을 텍스트 파일로 파이프한 다음 텍스트 파일을 여는 방법은 무엇입니까?

Windows 배치 파일 - 출력을 텍스트 파일로 파이프한 다음 텍스트 파일을 여는 방법은 무엇입니까?

다른 배치 파일을 실행하고 화면에 있는 내용을 로그 파일로 출력한 다음 로그 파일을 열려고 시도하는 간단한 배치 파일이 있는 이상한 문제가 있습니다. 문제는 로그 파일이 열리지 않는다는 것입니다. 코드는 다음과 같습니다.

echo %date%, %time%: Deploying web site to Test1. > deploy.bat.log
Archive.deploy.cmd /Y /M:Test1 /U:<User> /P:<Password> >> deploy.bat.log
start "" notepad.exe deploy.bat.log

시행착오를 거쳐 외부 배치 파일에 대한 호출에 주석을 달면 예상대로 로그 파일이 열린다는 사실을 발견했습니다.

echo %date%, %time%: Deploying web site to Test1. > deploy.bat.log
REM Archive.deploy.cmd /Y /M:Test1 /U:<User> /P:<Password> >> deploy.bat.log
start "" notepad.exe deploy.bat.log

확인하기 위해 다른 배치 파일도 간단히 수행하는 파일로 교체했지만 echo Hello World문제는 여전히 남아 있습니다. 로그 파일이 열리지 않습니다. 다른 배치 파일에 문제가 발생하여 오류가 발생했다고 생각했지만 실제로는 그렇지 않은 것 같습니다. 이 예제는 아직 작동하지 않습니다.

echo %date%, %time%: Deploying web site to Test1. > deploy.bat.log
Hello.bat
start "" notepad.exe deploy.bat.log

내 질문은 로그 파일이 열리지 않는 이유는 무엇이며 열리도록 수정하려면 어떻게 해야 합니까?

답변1

cmd배치 파일에 연결됩니다. 즉, 호출된 배치 파일이 호출 배치 파일을 대체하고 반환되지 않으므로 배치 호출 이후의 모든 호출은 표시되지 않습니다. 배치 파일에서 돌아가려면 다음을 사용해야 합니다.부르다명령은 다음과 같습니다.

echo %date%, %time%: Deploying web site to Test1. > deploy.bat.log
call Hello.bat
start "" notepad.exe deploy.bat.log

여러분이 기대하는 것과는 다르지만, 유감스럽게도 DOS의 초기 잘못된 설계 결정이 여전히 남아 있습니다. 최신 Windows 버전에서 얼마나 많은 DOS1 배치 파일이 사용되는지는 확실하지 않지만 추측할 수는 있습니다.

관련 정보