从脚本中打开 powershell 终端以执行

从脚本中打开 powershell 终端以执行
# Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass  (Before running the script execute the command in terminal for admin rights)

# Step 1) install Chocolatey when needed
if (-not (Test-Path -Path "$env:ProgramData\Chocolatey\choco.exe" -PathType Leaf))
 {
   # from https://chocolatey.org/install
   Set-ExecutionPolicy Bypass -Scope Process -Force;
   [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
   iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
}

$argList = "-file `"C:\Users\cdac\Desktop\Shravan\PowerShell_Scripts\Automation_working_code_bkup.ps1`""
Start powershell -argumentlist $argList -NoNewWindow 

# Step 2) define the array of packages you are offering
 $Packages = 'googlechrome',
             'firefox',
             'codeblocks', 
             'windbg',                        ##### newly added ####          
             'x64dbg.portable',               ##### newly added #### 
             'visualstudio2019community',     ##### newly added ####
             'nasm',
             'explorersuite',
             'pestudio',
             'vscode',
             'sysinternals',
             'python',                        ##### newly added ####
             'ccleaner',
             'anaconda3',
             'wireshark',
             'sublimetext3',  
             'notepadplusplus',
             'ida-free'
 
             

# Step 3) define the Show-Menu function
function Show-Menu 
{
    Clear-Host
    Write-Host "**********************************************"
    Write-Host "LIST OF SOFTWARES"
    # write the options using the array of packages
    for ($i = 0; $i -lt $Packages.Count; $i++)
    {
        # {0,10} means right align with spaces to max 10 characters
        Write-Host ('{0,10}. {1}' -f ($i + 1), $Packages[$i])
    }
    Write-Host " q. Exit the script"
    Write-Host "*************************************************"
    Write-Host
}

# Step 4) enter an endless loop you only exit if the user enters 'q'
while ($true) 
{
     Show-Menu
    $UserInput = Read-Host "Select the softwares number(s) to be installed (space separated)"
   
        # testing if the user wants to quit and if so, break the loop
        if ($UserInput -eq 'q') 
        {
            break
        }

         foreach($input in $UserInput.Split(' '))
         {
     
            # testing if the user entered a number between 1 and the total number of packages (inclusive)
            if ([int]::TryParse($input,[ref]$null) -and 1..$Packages.Count -contains [int]$input) 
            {
                # here you install the chosen package using the array index number (= user input number minus 1)
                $packageIndex = [int]$input - 1
                Write-Host "Installing $($Packages[$packageIndex])"
                Choco install $Packages[$packageIndex] -y --ignore-checksums
                 
            } 

             else 
             {
                $availableOptions = 1..$Packages.Count -join ','
                Write-Host "Error in selection, choose $availableOptions or q" -ForegroundColor Red
             }
         }

    $null = Read-Host "Press Enter to continue"
}

我必须在另一个 powershell 终端中执行当前脚本输出。另一个 powershell 终端正在打开,但该终端不断闪烁。请告诉我脚本中的错误在哪里。

相关内容