簡體   English   中英

如何從.ps1 文件運行 powershell 腳本?

[英]How to run powershell script from .ps1 file?

我正在嘗試自動執行一個簡單的 PS 腳本(刪除某個.txt 文件)。 顯然,我是 powershell 的新手 :) 當我在 shell 中運行代碼時,它完美無缺。 但是當我將代碼保存為 a.ps1 並雙擊它(或遠程執行)時,它只會彈出一個 window 並且什么都不做。

我嘗試將代碼保存為 .bat 文件並在 Windows 命令行上執行它,但它的行為相同:通過直接在提示符下編碼工作,但不能通過執行 .bat 文件工作。

$Excel = New-Object -ComObject Excel.Application
$Workbook = $Excel.Workbooks.Open('H:\codes\test1.xlsm')
$workSheet = $Workbook.Sheets.Item(2)
$str_name = $WorkSheet.Cells.Item(2,1).Text
Remove-Item -Path "H:\text files\$str_name.txt" -Force

我希望它可以通過雙擊它來工作,就像在 shell 或命令行中運行一樣,但我不知道為什么它沒有。

創建一個指向 your.ps1 文件的批處理文件。 您可能需要以提升的權限運行批處理文件,具體取決於您的訪問級別(登錄帳戶將用於執行)。

例如:

Powershell.exe -executionpolicy remotesigned -File  "C:\Path\script.ps1"

如果這仍然不起作用,請通過 CMD 執行您的批處理文件(復制路徑,用引號括起來,到 CMD 中)並讓我知道響應。

有幾種方法可以運行 a.ps1 文件。 最簡單的方法是右鍵單擊該文件並“使用 PowerShell 運行”。

正如其他人所建議的那樣,您還可以在命令提示符下或從 BATCH 或 CMD 文件中使用 powershell.exe 運行 your.ps1 文件。 如下:

powershell.exe -File C:\Script.ps1

如果您仍然遇到問題,則可能是執行策略。 為此,只需將 -ExecutionPolicy Bypass 添加到您的命令中,如下所示:

powershell.exe -File C:\Script.ps1 -ExecutionPolicy Bypass

要更改您的執行策略,您可以使用:

Set-ExecutionPolicy

希望這可以幫助。

暫無
暫無

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

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