Apa tidak find.exe
menemukan keberatan tentang parameter ketika digunakan dalam shell konsol PowerShell? Perintah-perintah ini berfungsi seperti yang diharapkan dalam a cmd.exe
kulit.
PS C:\Windows\System32\WindowsPowerShell\v1.0> find /i "System.Diagnostics.Process" *.ps1xml
FIND: Parameter format not correct
PS C:\Windows\System32\WindowsPowerShell\v1.0> find /i "System.Diagnostics.Process" *.ps1xml
FIND: Parameter format not correct
PS C:\Windows\System32\WindowsPowerShell\v1.0> C:\Windows\System32\find.exe /i "System.Diagnostics.Process" *.ps1xml
FIND: Parameter format not correct
PS C:\Windows\System32\WindowsPowerShell\v1.0> C:\Windows\System32\find.exe /i "System.Diagnostics.Process" .\DotNetTypes.format.ps1xml
FIND: Parameter format not correct
powershell
cmd.exe
find
lit
sumber
sumber
C:\Windows\SYSTEM32\find.EXE
?where find
bekerja dalam cmd tetapi tidak di PowerShellfind.exe
apakah itu. Ya, saya tahu bahwa PowerShell juga dapat melakukannya dengan Get-Content ... dll. Saya hanya mencoba melakukan sesuatu yang sederhana. Apakah itu tidak mungkin di PowerShell? Saya telah menulisgrep
Script PowerShell seperti, tetapi tidak pada sistem ini dan saya tidak ingin memburunya malam ini.Jawaban:
Mencoba:
Saya menggunakan Sysmon.exe untuk membandingkan eksekusi di
PowerShell.exe
dancmd.exe
:Untuk cmd.exe:
Untuk PowerShell:
kita dapat melihat bahwa di PowerShell, tanda kutip di sekitar istilah pencarian tidak ada, jadi dengan menambahkan seperangkat tanda kutip ganda itu seharusnya berfungsi.
sumber
find
Seperti yang dikatakan Peter Hahndorf, PowerShell sedang menghapus tanda kutip luar . Anda dapat memeriksanya secara langsung dengan menggema atau menulis string langsung di baris perintah
IMHO itu hal yang baik karena sekarang Anda dapat menggunakan tanda kutip tunggal untuk membungkus string. Anda juga memiliki cara standar untuk memberikan parameter karakter khusus yang mirip dengan bash, tidak seperti dalam cmd dimana menanamkan tanda kutip ganda menyebalkan
Jadi menurut Aturan mengutip PowerShell Anda harus lolos dari kutipan dengan baik
`backticks`
atau kutipan ganda itu sendiri, atau cukup kutip dalam satu kutipDalam kasus-kasus sederhana seperti ini ketika tidak ada ruang dalam parameter Anda juga dapat melarikan diri dari tanda kutip ganda secara langsung tanpa memasukkannya ke dalam pasangan tanda kutip lainnya
Namun ada cara yang lebih mudah Argumen verbal
--%
Alhasil Anda bisa menggunakannya seperti ini
sumber