0
아주 간단한 스크립트에 문제가 있습니다. 근본적으로 뭔가 빠져 있다고 생각합니다. 특정 장치가 COM 포트에 연결되어 있는지 확인하고, 장치가 발견되면 COM1으로 다시 매핑합니다.변수에서 cmd 명령 "포트 변경"을 실행하십시오.
change port com1 /d
$ComNum = (change port) -match 'COM.+19h2kp0' -replace '^(COM\d+).+','$1'
$changeport = ("change port COM1=" + $ComNum)
$changeport
그것은 완벽하게 작동하는 것 같다, 내가 얻을 출력 문제는 출력이 완벽한 외모에도 불구하고, 명령이 실제로 실행되지 않는다는 것입니다
change port COM1=COM4
입니다. 변수에서 cmd 명령을 실행하는 Powershell 제한이 있습니까?
미리 감사드립니다.
감사합니다. Invoke-Expression이 명령을 실행하는 것 같지만 PowerShell에서 포트 변경 명령을 실행할 때 어떤 이유로 COM 포트가 매핑 된 것으로 표시되지만 응용 프로그램에서는 그렇게 생각하지 않습니다. CMD.exe에서 명령을 실행하면 다시 매핑되고 응용 프로그램이 행복해집니다. PowerShell에서 CMD로 명령을 보내는 방법이 있습니까? – user3216526
시도'& cmd/c $ changeport' –
아니요, 실제로 그걸 시도하고있었습니다. Powershell은 포트를 매핑 된 것으로 표시하지만 CMD는 매핑하지 않습니다. Powershell과 CMD가 변경 포트에 대해 다른 출력을 표시하는 것은 매우 이상합니다. – user3216526