我正在尝试自动执行简单的PS脚本(以删除某些.txt文件)。显然,我是Powershell的新手:) 当我在shell中运行代码时,它可以完美运行。但是,当我将代码另存为.ps1并双击(或远程执行)时,它只是弹出一个窗口而没有执行任何操作。
我试图将代码另存为.bat文件并在Windows命令行上执行,但是其行为相同:通过直接在提示符下进行编码可以工作,但不能通过执行.bat文件来工作。 / p>
$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或命令行中运行一样,但是我不知道为什么不行。
答案 0 :(得分:2)
创建一个指向.ps1文件的批处理文件。您可能需要以提升的权限运行批处理文件,具体取决于您的访问级别(登录的帐户将用于执行)。
例如:
Powershell.exe -executionpolicy remotesigned -File "C:\Path\script.ps1"
如果仍然无法解决问题,请通过CMD执行批处理文件(将路径(用引号引起来的路径复制)到CMD中),并让我知道响应。
答案 1 :(得分:1)
有几种方法可以运行.ps1文件。最简单的方法是右键单击该文件,然后单击“使用PowerShell运行”。
正如其他人所建议的那样,您也可以在命令提示符下或从BATCH或CMD文件中使用powershell.exe运行.ps1文件。如下:
powershell.exe -File C:\Script.ps1
如果仍然有问题,可以将其作为执行策略。为此,只需在命令中添加-ExecutionPolicy Bypass,如下所示:
powershell.exe -File C:\Script.ps1 -ExecutionPolicy Bypass
要更改执行策略,可以使用:
Set-ExecutionPolicy
希望这会有所帮助。