我正在尝试执行PowerShell脚本以保护Excel文件的密码。
这是脚本:
Set objExcel = CreateObject(“Excel.Application”)
objExcel.Visible = True
objExcel.DisplayAlerts = FALSE
Set objWorkbook = objExcel.Workbooks.Add
Set objWorksheet = objWorkbook.Worksheets(1)
objWorksheet.Cells(1, 1).Value = Now
objWorkbook.SaveAs “C:\Test.xlsx”,,”%reTG54w”
objExcel.Quit
我尝试使用“以PowerShell身份运行”运行它,但它会自动关闭,我也尝试使用PowerShell ISE,结果如下:
其文字是这样的:
At C:\Users\gasgu\OneDrive\Desktop\pwoershell.ps1:14 char:39
+ objWorkbook.SaveAs “C:\Test.xlsxâ€,,â€%reTG54wâ€
+ ~
Missing expression after ',' in pipeline element.
At C:\Users\gasgu\OneDrive\Desktop\pwoershell.ps1:14 char:39
+ objWorkbook.SaveAs “C:\Test.xlsxâ€,,â€%reTG54wâ€
+ ~
Missing argument in parameter list.
+ CategoryInfo : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : MissingExpression
我已经从以下网址找到了该脚本:https://devblogs.microsoft.com/scripting/how-can-i-password-protect-an-excel-spreadsheet/
但是,值得一提的是,我想做的是立即从PC(.xlsx)中提取一个Excel文件并用密码保护它(创建新副本),在此脚本中我没有可以理解的是,是否正在从某处选择excel文件,因为我没有看到明确指出这一点的行。
编辑:根据@BigBen的说明(请参阅注释和批准的答案),我执行的脚本最终不是PowerShell,该脚本是VBS。他在PowerShell中提供了执行所需结果的脚本。
答案 0 :(得分:2)
那是VBScript,不是Powershell。也许试试这个:
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $true
$excel.DisplayAlerts = $false
$wb = $excel.Workbooks.Add()
$wb.Worksheets("Sheet1").Cells(1, 1).Value = Get-Date
$wb.SaveAs("C:\Test.xlsx",[Type]::Missing,"%reTG54w")
$excel.Quit()