Powershell 스크립트에서 BAT 파일 실행

Siddharth Bishnoi 2023년1월30일
  1. PowerShell 스크립트 생성 및 실행
  2. PowerShell 스크립트에서 배치 파일 실행
  3. 인수가 있는 PowerShell 스크립트에서 배치 파일 실행
  4. PowerShell에서 일괄 명령 실행
  5. 결론
Powershell 스크립트에서 BAT 파일 실행

배치 파일은 한 줄씩 순차적으로 실행하는 일련의 명령으로 구성됩니다. 이러한 배치 파일은 Windows NT 제품군용으로 처음 출시된 명령줄 인터프리터인 cmd.exe에서 실행됩니다.

마찬가지로 PowerShell 파일은 PowerShell 명령줄 인터페이스에서 실행되는 명령 목록으로 구성된 텍스트 파일입니다. .ps1 확장자로 저장됩니다. Windows용 최신 셸 및 스크립팅 도구이자 고급 cmd 버전입니다.

PowerShell 스크립트에서 .bat 파일을 실행하려면 PowerShell에서 수동으로 실행할 수 있습니다. 그러나 .bat 파일을 PowerShell 스크립트에 추가하여 사용자 개입 없이 자동으로 실행하면 처리해야 하는 몇 가지 사소한 실수로 인해 때때로 실행되지 않을 수 있습니다.

이 문서에서는 PowerShell 스크립트에서 배치 파일을 실행하는 다양한 방법을 설명합니다.

PowerShell 스크립트 생성 및 실행

PowerShell 스크립트를 생성하려면 메모장을 열고 실행할 명령을 추가합니다. 파일을 .ps1 확장자로 저장하여 PowerShell 파일로 저장합니다.

모든 텍스트 편집기를 사용하여 파일을 만들 수 있습니다.

PowerShell 스크립트 만들기

PowerShell 스크립트를 실행하려면 PowerShell 파일을 마우스 오른쪽 버튼으로 클릭하고 PowerShell로 실행을 클릭하십시오. PowerShell ISE에서 파일을 편집할 수도 있습니다.

PowerShell 스크립트 실행

PowerShell 스크립트에서 배치 파일 실행

PowerShell 스크립트에서 .bat 파일을 실행하려면 PowerShell 스크립트에 다음 줄을 추가합니다.

& .\testfile1.bat

PowerShell 스크립트에서 BAT 파일 실행

그러나 이것은 testfolder가 상대 경로이거나 경로에 드라이브 문자를 사용할 때만 작동합니다. 보다 안정적인 접근이 가능합니다.

예를 들어, opt.txt라는 텍스트 파일로 출력을 보내는 명령으로 구성된 testfile.bat라는 .bat 파일이 있습니다. PowerShell 스크립트가 실행 중일 때 자동으로 실행되도록 배치 파일을 PowerShell 스크립트에 추가합니다.

배치 파일을 실행하기 위해 PowerShell 스크립트에 다음 줄을 추가합니다.

cmd.exe /c 'testfile1.bat'

CMD를 사용하여 PowerShell 스크립트에서 BAT 파일 실행

출력:

PowerShell 스크립트 출력에서 ​​BAT 파일 실행

PowerShell 스크립트에서 배치 파일을 실행하는 또 다른 방법은 Start-Process cmdlet을 사용하는 것입니다. 배치 파일을 실행하려면 PowerShell 스크립트에 다음 코드 줄을 추가합니다.

Start-Process -FilePath 'C:\Users\Aastha Gas Harda\Desktop\testfile1.bat' -NoNewWindow

Start-Process를 사용하여 PowerShell 스크립트에서 BAT 파일 실행

어디에:

  • -Filepath는 배치 파일의 경로를 지정합니다.
  • -NoNewWindow는 현재 창에서 프로세스를 시작합니다.

배치 파일을 관리자로 실행하려면 위 코드에 -verb runas를 추가하십시오.

Start-Process -FilePath 'C:\Users\Aastha Gas Harda\Desktop\testfile1.bat' -Verbose Runas -NoNewWindow

PowerShell 스크립트에서 관리자로 BAT 파일 실행

이 명령은 .bat 파일에 실행 시 관리자 권한이 필요한 명령이 포함되어 있을 때 유용합니다.

인수가 있는 PowerShell 스크립트에서 배치 파일 실행

인수가 포함된 PowerShell 스크립트에서 배치 파일을 실행하려면 -ArgumentList 매개변수를 사용하고 문자열 배열에서 각 인수를 지정하면 됩니다. 위의 예를 사용하여 PowerShell 스크립트에 다음 코드 줄을 추가합니다.

Start-Process -FilePath "cmd.exe" -ArgumentList @("/B", "/C", "`"", "^`"testfile1.bat^`"", "^`"$inputFilePath^`"", "`"") -NoNewWindow;

인수가 있는 PowerShell 스크립트에서 BAT 파일 실행

PowerShell에서 일괄 명령 실행

배치 파일 대신 PowerShell 스크립트에서 직접 배치 명령을 실행할 수도 있습니다. 다음 코드 줄을 추가하여 echo 명령을 실행하여 hello world로 출력을 인쇄합니다.

Start-Process "cmd.exe" '/c echo helloworld' -NoNewWindow

PowerShell에서 직접 CMD 명령 실행

결론

그래서 가능한 가장 안전한 방법으로 PowerShell 스크립트에서 배치 파일을 실행하는 방법에 대해 논의했습니다. 또한 사용자 개입 없이 PowerShell 스크립트 대신 PowerShell에서 직접 배치 명령을 실행하는 방법에 대해서도 논의했습니다.