Score:-2

รับเส้นทางแบบเต็มไปยังไบนารีโดยทางโปรแกรมใน PowerShell (ซึ่ง, ที่ไหน, Get-Command)

ธง cn

ฉันจะรับเส้นทางสัมบูรณ์ไปยังไบนารีที่กำหนดและเก็บไว้ในตัวแปรได้อย่างไร

สิ่งที่เทียบเท่ากับสิ่งต่อไปนี้สำหรับ Linux Bash ใน Windows Powershell

user@disp985:~$ path=`ซึ่ง gpg`
user@disp985:~$ echo $เส้นทาง
/usr/bin/gpg
ผู้ใช้@disp985:~$ 

user@disp985:~$ $เส้นทาง
gpg: สร้างคีย์บ็อกซ์ '/home/user/.gnupg/pubring.kbx'
gpg: คำเตือน: ไม่มีคำสั่งให้ พยายามเดาว่าคุณหมายถึงอะไร...
gpg: ไปข้างหน้าและพิมพ์ข้อความของคุณ ...

ใน Windows Powershell มี รับคำสั่งแต่ผลลัพธ์แทบจะไม่สำคัญเลยที่จะแยกวิเคราะห์โดยทางโปรแกรมสำหรับสคริปต์

PS C:\Users\user> รับคำสั่ง gpg.exe
 
CommandType ชื่อ เวอร์ชัน ที่มา
----------- ----- ------- ------
โปรแกรม gpg.exe 2.2.28.... C:\Program Files (x86)\Gpg4win\..\GnuP...
 
 
PS C:\ผู้ใช้\ผู้ใช้>

ฉันจะกำหนดเส้นทางแบบเต็มไปยังไบนารีที่กำหนดใน Windows Powershell โดยทางโปรแกรม จัดเก็บไปยังตัวแปร และดำเนินการได้อย่างไร

in flag
`แทบจะแยกวิเคราะห์เล็กน้อย'? PowerShell เป็นแบบเชิงวัตถุ ไม่จำเป็นต้องแยกวิเคราะห์อะไรเลย จะได้ไม่จืดชืดไปมากกว่านี้
in flag
นอกเหนือจากนั้น คำถามอยู่นอกหัวข้อ คำถามการเขียนโปรแกรมอยู่ใน [ดังนั้น] มีโอกาสสูงที่คำถามนี้มีคำตอบอยู่แล้ว
djdomi avatar
za flag
ฉันยอมรับว่ามันไม่เกี่ยวกับความผิดพลาดของเซิร์ฟเวอร์
Michael Altfield avatar
cn flag
ไม่แน่ใจว่าการพิมพ์คำสั่งลงในเทอร์มินัล powershell กำลังเขียนโปรแกรมอย่างไร ดูเหมือนว่า Server Fault สำหรับฉัน..
bjoster avatar
cn flag
โดยปกติแล้ว ไม่จำเป็นต้องรับการกำหนดค่าตามความชอบของวัตถุเป็นตัวแปร (ประเภทสตริง) เพียงใช้ทุกที่ที่คุณอยู่ สิ่งที่ "ใกล้เคียงที่สุด" กับเอาต์พุตสตริงแบบแบตช์ (bash) จะเป็นรูปแบบ `Get-Command | Format-List Source` ซึ่งค่อนข้างง่ายในการแยกวิเคราะห์
Score:1
ธง cn

สำหรับตัวอย่างคำสั่งที่มาจากคำถาม OP:

PS C:\Users\user> รับคำสั่ง gpg.exe
 
CommandType ชื่อ เวอร์ชัน ที่มา
----------- ----- ------- ------
โปรแกรม gpg.exe 2.2.28.... C:\Program Files (x86)\Gpg4win\..\GnuP...
 
 
PS C:\ผู้ใช้\ผู้ใช้>

คุณสามารถแยกฟิลด์ "แหล่งที่มา" ด้วยไวยากรณ์ต่อไปนี้

PS C:\Users\user> $(Get-Command gpg.exe).Source
C:\Program Files (x86)\Gpg4win\..\GnuPG\bin\gpg.exe

จากนั้น คุณยังสามารถจัดเก็บไว้ในตัวแปรและดำเนินการด้วยเครื่องหมายแอมเปอร์แซนด์ (&) นำหน้าตัวแปร

PS C:\Users\user> $path=$(Get-Command gpg.exe).Source
PS C:\Users\user> echo $path
C:\Program Files (x86)\Gpg4win\..\GnuPG\bin\gpg.exe
PS C:\Users\user> & $path
gpg: คำเตือน: ไม่มีคำสั่งให้ พยายามเดาว่าคุณหมายถึงอะไร...
gpg: ไปข้างหน้าและพิมพ์ข้อความของคุณ ...

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา