Powershell 스크립트에서 BAT 파일을 실행하는 가장 안전한 방법
bat 파일을 직접 실행하는 powershell 스크립트를 얻을 수 없습니다.예를 들어, 이는 명령줄에서 작동합니다.
.\\my-app\my-fle.bat
이 명령어를 스크립트에 추가하면 다음 출력이 됩니다.
The term '.\\my-app\my-file.bat' is not recognized as the
name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
다음 시도도 해봤는데 같은 결과가 나왔습니다.
& .\\my-app\my-fle.bat
& ".\\my-app\my-fle.bat"
\my-app\my-fle.bat
& \my-app\my-fle.bat
& "\my-app\my-fle.bat"
주의: 배치 성공 여부를 확인해야 하므로 마지막 종료 코드를 반환해야 합니다.
cmd.exe /c '\my-app\my-file.bat'
.bat을 실행하여 마지막 종료 코드에 액세스하려면 다음과 같이 실행합니다.
& .\my-app\my-fle.bat
이거 먹어봐, 네 점 소스가 좀 이상했어.편집, OP의 last exit code 비트 추가.
$A = Start-Process -FilePath .\my-app\my-fle.bat -Wait -passthru;$a.ExitCode
더하다-WindowStyle Hidden
보이지 않는 배치에 사용됩니다.
다음과 같이 간단하게 할 수 있습니다.
Start-Process -FilePath "C:\PathToBatFile\FileToExecute.bat" -ArgumentList $argstr -Wait -NoNewWindow
여기서,
ArgumentList - bat 파일에서 필요한 경우 매개 변수 또는 매개 변수 값을 전달합니다.
대기 - 프로세스(bat)가 완료될 때까지 대기합니다.
[No New Window] : 현재 콘솔창에서 새 프로세스를 시작합니다.
my-app이 현재 디렉토리의 하위 디렉토리라고 가정합니다.$LASTEXITCODE는 마지막 명령어부터 표시됩니다.
.\my-app\my-fle.bat
파일 공유의 경우:
\\server\my-file.bat
@Rynant의 솔루션은 나에게 효과가 있었다.몇 가지 추가 요구사항이 있었습니다.
- bat 파일에서 발견된 경우 일시 중지 안 함
- 필요에 따라 bat 파일 출력을 로그 파일에 추가합니다.
(최종적으로는) 다음과 같은 작업을 실시합니다.
[PS 스크립트 코드]
& runner.bat bat_to_run.bat logfile.txt
[runner.bat]
@echo OFF
REM This script can be executed from within a powershell script so that the bat file
REM passed as %1 will not cause execution to halt if PAUSE is encountered.
REM If {logfile} is included, bat file output will be appended to logfile.
REM
REM Usage:
REM runner.bat [path of bat script to execute] {logfile}
if not [%2] == [] GOTO APPEND_OUTPUT
@echo | call %1
GOTO EXIT
:APPEND_OUTPUT
@echo | call %1 1> %2 2>&1
:EXIT
어때invoke-item script.bat
.
win_shell ansible 모듈을 사용하더라도 다음과 같은 작업을 수행할 수 있습니다.
- name: Install the WebApp Service
win_shell: 'Service_Install.bat'
args:
executable: cmd
chdir: 'D:\MyWebApp\Services'
register: result
여기서D:\MyWebApp\Services
를 사용하는 장소입니다..bat
파일을 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/20645326/safest-way-to-run-bat-file-from-powershell-script
'source' 카테고리의 다른 글
URL을 문자열로 변환하고 다시 되돌리기 (0) | 2023.04.12 |
---|---|
열 이름이 있는 모든 테이블 이름을 찾으시겠습니까? (0) | 2023.04.12 |
텍스트 파일을 Windows 명령줄과 연결하고 선행 행을 삭제합니다. (0) | 2023.04.12 |
임의의 순서로 두 개의 이름을 포함하는 문자열과 일치하도록 정규 표현 (0) | 2023.04.12 |
현재 날짜에서 7일 빼기 (0) | 2023.04.12 |