Nasıl ps1 PowerShell bir dosya için komut-satırı geçmesi
Yıllardır cmd/DOS/Windows kabuğu kullanılan ve toplu iş dosyaları için komut satırı argümanları geçtim. Örneğin, bir dosya var, "zuzu.bat" ve o, ben erişim %1, %2, vb. Şimdi, PowerShell script aradığımda aynı şeyi yapmak istiyorumCmd.exe bir kabuk içinde olduğum zaman. Bir senaryo var, "xuxu."(ve PowerShell ile TANINAN değişken benim için PS1 PS1 ve ilişkili dosyaları ekledim). ps1 Ama ne yaparsam yapayım, $args
değişken bir şey elde etmek mümkün görünüyor. Her zaman uzunluğu 0.
Eğer PowerShell bir kabuk içinde olduğumu, çalışır cmd.exe yerine, (tabii ki). Ama henüz PowerShell ortamında tam zamanlı yaşamak için yeterince rahat değilim. Yazın istemiyorum "powershell.exe -komut xuxu.ps1 p1 p2 p3 p4". Yazın istiyorum "p3 p4 p1 p2". xuxu
Eğer öyleyse, nasıl bu mümkün değildir, ve?
Ben çalışamaz almak için örnek önemsiz, foo.ps1:
Write-Host "Num Args:" $args.Length;
foreach ($arg in $args)
{
Write-Host "Arg: $arg";
}
Sonuç hep böyle
C:\temp> foo
Num Args: 0
C:\temp> foo a b c d
Num Args: 0
c:\temp>
CEVAP
TAMAM, öncelikle bu PowerShell temel güvenlik özelliği kırılıyor. Bu anlayış, burada bunu nasıl olduğunu:
- Windows Explorer bir pencere açın
- MenüAraçlar->Klasör Seçenekleri->tabDosya Türleri
- PS1 dosya tipi ve Gelişmiş düğmesini tıklatın Bul
- Yeni düğmesini tıklatın
- Eylem için:Açın
- Uygulama için:"" "Dosya" "%1" %* . C:\WINNT\system32\WindowsPowerShell\v1.0\powershell.exe ^/strong>
Profiliniz ne bağlı olarak da orada -NoProfile
bir argüman koymak isteyebilirsiniz.
Nasıl php bulmak için.dosya komut satı...
Nasıl PowerShell komut satırı değişken...
Nasıl yerel bir dosya ya da uzak dosya...
Nasıl Node.js komut satırı geçmesi?...
Nasıl PostgreSQL komut satırı yardımcı...