簡體   English   中英

在cmd中將Powershell腳本作為自定義命令運行

[英]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調用CFCF.cmd )。 但是,在PowerShell中,直接調用CreateFileCreateFile.ps1 )效率更高。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM