>  기사  >  백엔드 개발  >  os/exec를 사용하는 것과 명령줄에서 실행하는 것의 결과는 어리둥절할 정도로 다릅니다.

os/exec를 사용하는 것과 명령줄에서 실행하는 것의 결과는 어리둥절할 정도로 다릅니다.

王林
王林앞으로
2024-02-14 12:45:09908검색

使用 os/exec 和在命令行执行之间出现令人费解的不同结果

PHP 편집기 Zimo는 PHP에서 os/exec 함수를 사용하고 명령줄에서 명령을 실행할 때 발생하는 어리둥절할 정도로 다른 결과에 대한 분석을 제공합니다. 실제 응용 프로그램에서는 명령줄에서 성공적으로 실행될 수 있는 명령이 os/exec 함수를 사용할 때 동일한 결과를 얻을 수 없는 상황에 직면할 수 있습니다. 이러한 상황은 종종 우리를 혼란스럽게 만들고 해결책을 찾기 어렵게 만듭니다. 이 글에서는 그 이유를 분석하고 os/exec 기능을 더 잘 이해하고 적용하는 데 도움이 되는 솔루션을 제공할 것입니다.

질문 내용

패키지os/exec를 사용하여 golang에서 명령을 실행하는 프로그램을 작성했습니다.

으아아아

프로그램을 실행하면 다음과 같이 인쇄됩니다. err: exit status 1

하지만 Windows 명령줄에서 taskkill /f /im vintgui.exe 명령을 실행하면. 효과가 있었습니다.

os/exec包运行命令和直接通过windows命令行(使用相同用户相同权限)运行命令有不同的结果?如何修复我的程序?

解决方法

解决方案是使用 command 对象的 stderr 패키지를 통해 명령을 실행하면 windows 명령줄(동일한 사용자 및 권한 사용)을 통해 직접 명령을 실행하는 것과 결과가 다른 이유는 무엇입니까? 내 프로그램을 어떻게 고칠 수 있나요?

해결 방법

해결책은 command 개체의 stderr 속성을 ​​사용하는 것입니다. 다음과 같이 할 수 있습니다:

으아아아

상황에 따라 바꿔보세요

으아아아 🎜to🎜 으아아아 🎜모든 매개변수를 하나의 문자열로 결합하지 마세요. 🎜

위 내용은 os/exec를 사용하는 것과 명령줄에서 실행하는 것의 결과는 어리둥절할 정도로 다릅니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제