[英]Run powershell script as custom command inside cmd
如何從cmd或powershell將PowerShell腳本作為自定義命令運行。
例如我的腳本(CreateFile.ps1):
function CreateFile ($fileName) {
New-Item -Name $fileName -ItemType "file"
}
CreateFile($args[0])
我想在cmd \\ powershell中使用自定義命令(此處為“ CF”)使用腳本:
C:\some folder> CF testfile.txt
我添加了一個新的系統環境變量,並帶有指向我的ps1文件的鏈接。 但是,即使重新啟動后,它也不起作用。
如果要在PowerShell和cmd中使用“ CF文件名”,建議您在cmd中使用放置在路徑中的批處理文件:
:: CF.cmd create file %1 with 0 length
@Type Nul >"%~1"
並將功能放在您的PowerShell配置文件之一中$PROFILE | Format-List -Force
$PROFILE | Format-List -Force
function CF ($fileName) {
New-Item -Name $fileName -ItemType "file"
}
因此,您具有相同的命令,但在各自的環境中執行。
我添加了一個新的系統環境變量,並帶有指向我的ps1文件的鏈接。
從PowerShell外部,其腳本( *.ps1
)在設計上不能直接執行(與批處理文件( *.cmd
, *.bat
)不同,因此,如果要通過$env:PATH
提供*.ps1
腳本是不夠的。從cmd.exe
調用它們
但是,您可以編寫一個簡單的輔助包裝批處理文件,該文件通過powershell.exe
顯式調用腳本:
在$env:PATH
列出的文件夾之一中:
創建具有以下內容的批處理文件CF.cmd
:
@powershell.exe -NoProfile -File "%~dp0CreateFile.ps1" %*
將CreateFile.ps1
復制到同一文件夾 ,但是刪除函數包裝器,以便調用腳本直接調用該功能; 即,使其內容如下:
param($FileName) New-Item -Name $FileName -ItemType File
然后,您將能夠從cmd.exe
和PowerShell調用CF
( CF.cmd
)。 但是,在PowerShell中,直接調用CreateFile
( CreateFile.ps1
)效率更高。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.