2012-05-21 2 views
3

나는 system() 기능을 알고 있지만, 그것은 자신의 환경을 생성하므로 여기에 설정된 모든 변수는 메인 콘솔로 전달되지 않습니다. 사용자가 작성하거나 * .bat 파일에 의해 실행되는 것처럼 명령을 보낼 수 있습니까?내 프로그램이 실행중인 콘솔 창으로 명령을 보낼 수 있습니까?

내가 이것을 필요로하는 이유는 부모 CMD 프로세스의 env 변수를 설정하는 방법을 찾는다는 것입니다. 그리고 네, 그 시스템이 저에게 그렇게하기를 원하지 않는다는 것을 알고 있지만 아마도 그걸 해결할 방법이있을 것입니다 ...

아이디어는 입력으로 보내지는 변수로 설정하는 앱을 만드는 것입니다 이 같은 파이프 : 그럼

echo Bob| setvar name 

:

echo %name% 

생산 것이라고는 Bob

전체 아이디어는 홍보에서 변수를 설정 쉽게하는 것입니다 ogram 출력 (for 명령으로 수행하는 방법을 알고 있습니다)은 특수 배치 문자 (예 : ^!%)와 관련된 특성을 고려하여 파일 이름에 허용됩니다. 그것은 더 많은 cmd 스크립트를 더 간단하게 만들 것입니다.

답변

1

물론 프로그램과 동일한 콘솔 창에서 프로그램을 실행할 수 있습니다. 이는 CreateProcess의 기본 동작입니다. MSDN에는 what happens between related processes sharing a console에 대한 자세한 내용이 있습니다. 자신의 프로그램을 계속 실행하기 전에 자식 프로세스가 종료 될 때까지 기다리는 것이 좋습니다.

그러나 실제 목표에 도움이되지는 않습니다. 프로그램이 실행되는 은 조상 프로세스 중 하나의 환경 변수 과는 전혀 관련이 없습니다. 실제 문제를 해결하려면 look elsewhere해야합니다.

관련 문제