Megosztás a következőn keresztül:


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.