it-swarm-tr.com

PowerShell betiği nasıl çalıştırılır

PowerShell betiğini nasıl çalıştırabilirim?

  • MyScript.ps1 adlı bir komut dosyası var
  • Gerekli tüm çerçeveleri yükledim
  • Bunu ayarladım yürütme politikası şey
  • bu MSDN yardım sayfasındaki yönergelerini izledim ve şöyle çalıştırmaya çalışıyorum: powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1' (--noexit olan veya olmayan)

dosya adının çıktısı dışında hiçbir şey döndürmez.

Hata yok, mesaj yok, hiçbir şey yok. Oh, -noexit eklediğimde aynı şey oluyor, ancak PowerShell'de kalıyorum ve manuel olarak çıkmam gerekiyor.

.Ps1 dosyasının bir programı çalıştırması ve o programın çıktısına bağlı olarak hata seviyesini döndürmesi gerekir. Ama henüz oraya bile gitmediğimden eminim.

Neyi yanlış yapıyorum?

617
Pekka 웃
  1. Windows PowerShell'i başlatın ve PS komutunun görünmesi için bir süre bekleyin
  2. Komut dosyasının bulunduğu dizine gidin

    PS> cd C:\my_path\yada_yada\ (enter)
    
  3. Komut dosyasını yürütün:

    PS> .\run_import_script.ps1 (enter)
    

Neyi kaçırıyorum??

Veya: PowerShell betiğini cmd.exe dizininden çalıştırabilirsiniz:

powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)

buna göre burada blog yazısı

Veya Powershell betiğinizi C # uygulamanızdan bile çalıştırabilirsiniz :-)

C # uygulamanızdan PowerShell komut dosyalarını eşzamansız çalıştırma

652
marc_s

PowerShell 2.0'daysanız, cmd.exe gibi başka bir ortamdan bir komut dosyası çağırmak için PowerShell.exe's -File parametresini kullanın.

Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1
193
Keith Hill

Varsayılan komut dosyası yürütme politikasını değiştirmeden bir komut dosyası çalıştırmak istiyorsanız, Windows PowerShell işlevini başlatırken bypass anahtarını kullanabilirsiniz.

powershell [-noexit] -executionpolicy bypass -File <Filename>
162
Chingiz Musayev

Tür:

powershell -executionpolicy bypass -File .\Test.ps1

NOT: Burada Test.ps1, PowerShell betiğidir.

59
Sudheesh

Aynı sorunu yaşadım ve denedim ve denedim ... Sonunda kullandım:

powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"

Ve bu satırı bir toplu iş dosyasına koyun ve bu işe yarar.

27
Dennis

Eğer sadece PowerShell 1.0 kullanıyorsanız, bu işi yeterince iyi yapıyor gibi görünüyor:

powershell -command - < c:\mypath\myscript.ps1

Komut dosyasını PowerShell komut satırına yönlendirir.

21
AndyM

Çok kolay. Windows'ta .ps1 dosyasını sağ tıklayın ve Shell menüsünde PowerShell ile Çalıştır öğesini tıklayın.

11
electronictonic

PowerShell ISE , komut dosyasını açıp çalıştırmak, komut dosyanızı çalıştırmak ve çağırmak için kolay bir yöntem ...

 Enter image description here

Cmd (BAT) dosyasını kullanarak:

@echo off
color 1F
echo.

C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "PrepareEnvironment.ps1"

:EOF
echo Waiting seconds
timeout /t 10 /nobreak > NUL

Eğer ihtiyacınız varsa yönetici olarak çalıştırın :

  1. Komut İstemine işaret eden bir kısayol yapın (İdari Komut İstemi adını verdim)
  2. Kısayolun özelliklerini açın ve Uyumluluk sekmesine gidin
  3. Ayrıcalık Düzeyi bölümünde, "Bu programı yönetici olarak çalıştır" seçeneğinin yanındaki onay kutusunun işaretlendiğinden emin olun
9
Kiquenet
  • Komut dosyasının yolunu, yani yol ayarını cmd ile verin:

    $> . c:\program file\prog.ps1

  • PowerShell'in giriş noktası işlevini çalıştırın:

    Örneğin, $> add or entry_func or main

7
pkm

Komut dosyanız .ps1 uzantısıyla adlandırılmışsa ve bir PowerShell penceresindeyseniz, sadece ./myscript.ps1 komutunu çalıştırın (dosyanın çalışma dizininizde olduğunu varsayarak).

Zaten Windows 10'da zaten PowerShell sürüm 5.1 olan Windows 10 için de geçerlidir ve bunu mümkün kılmak için hiçbir şey yapmadığımı sanıyorum.

6
rainabba

Windows Görev Zamanlayıcı ile bir PowerShell betiği çalıştırmak istiyorsanız, lütfen aşağıdaki adımları izleyin:

  1. Görev oluştur

  2. Program/Script öğesini Powershell.exe olarak ayarlayın

  3. Arguments öğesini -File "C:\xxx.ps1" olarak ayarlayın

Başka bir cevaptan,PowerShell betiğini Windows görev zamanlayıcı kullanarak otomatik olarak nasıl yürütebilirim?.

5
Gearon

Dosya adının önünde -File parametresini kullanın. Alıntılar, PowerShell'in bunun bir komut dizisi olduğunu düşünmesini sağlar.

1
Engineer