Switch-Process
Linuxon és macOS rendszeren a parancsmag meghívja a execv() függvényt, hogy hasonló viselkedést biztosítson, mint a POSIX-rendszerhéjak.
Syntax
Default (Alapértelmezett)
Switch-Process
[[-WithCommand] <String[]>]
[<CommonParameters>]
Description
Egyes natív Unix-parancsok kifuttatnak valamit (például ssh), és a bash beépített parancs exec használatával létrehoznak egy új folyamatot, amely lecseréli az aktuálisat. Alapértelmezés szerint a exec nem érvényes parancs a PowerShellben. Ez hatással van néhány ismert szkriptre, például copy-ssh-id és az AzCLI néhány alparancsára.
A Switch-Process parancsmag meghívja a natív execv() függvényt, hogy a POSIX-rendszerhéjakhoz hasonló viselkedést biztosítson. Ez a parancsmag és annak aliasa, exec, a PowerShell 7.3.0-ban lett hozzáadva.
A PowerShell 7.3.1 a exec aliast olyan függvényre módosította, amely Switch-Processkörbefuttat. A függvény lehetővé teszi, hogy olyan paramétereket adjon át a natív parancsnak, amelyek hibásan kötődhetnek a WithCommand paraméterhez.
Ez a parancsmag csak nem Windows rendszerű rendszerekhez érhető el.
Példák
1. példa – "exec" függvénytől függő parancs végrehajtása
Ez a példa feltételezi, hogy a PowerShell az alapértelmezett rendszerhéj egy nem Windows rendszerű rendszeren.
ssh-copy-id egy népszerű bash-szkript, amely nyilvános kulcsokat helyez üzembe a célgépeken kulcsalapú hitelesítés céljából. A szkript a bash parancstól függ, exec.
ssh-copy-id user@host
Ha engedélyezve van a PSExec funkció, a ssh-copy-id szkript sikeres lesz.
Paraméterek
-WithCommand
Meghatározza a futtatandó natív végrehajtható fájlokat (és paramétereket). Az argumentumként átadott összes további érték karakterláncok tömbjeként lesz átadva, amelyeket az első paranccsal kell végrehajtani.
A célparancsnak natív végrehajthatónak kell lennie, nem PowerShell-parancsnak.
Paramétertulajdonságok
| Típus: | String[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | 0 |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
CommonParameters
Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.
Bevitelek
String
Kimenetek
Object
Jegyzetek
A Switch-Process parancsmagot azért hozták létre, hogy exec kompatibilitást biztosítson más POSIX héjakhoz. Normál körülmények között a parancsmag nem használható PowerShell-szkriptekben.
Switch-Process nem rendelkezik a beépített exec függvény funkcionális egyenértékével a POSIX-rendszerhéjakban, például ahogyan a fájlleírókat kezeli, de a legtöbb esetet le kell fednie.