แสดงรายการตัวแปรสภาพแวดล้อมทั้งหมดจากบรรทัดคำสั่ง


932

เป็นไปได้หรือไม่ที่จะแสดงรายการตัวแปรสภาพแวดล้อมทั้งหมดจากพรอมต์คำสั่งของ Windows

สิ่งที่เทียบเท่ากับ PowerShell gci env:( ls env:หรือdir env:)


1
บางคนสามารถแบ่งปันโซลูชัน PowerShell ได้หรือไม่ มันควรจะเป็นในอนาคตและทั้งหมด ขวา?
Bruno Bronosky

1
วิธีการแก้ปัญหา @BrunoBronosky PS จะรวมอยู่ในคำถามและนอกจากนี้ยังมีคำตอบซ้ำ =)
จอน

สำหรับคำอธิบายของแต่ละรายการโปรดดูss64.com/nt/syntax-variables.html
Samuel Harmer

คำตอบ:


1352

แค่ทำ:

SET

นอกจากนี้คุณยังสามารถทำเพื่อดูตัวแปรทั้งหมดที่มีชื่อขึ้นต้นด้วยSET prefixprefix

ตัวอย่างเช่นถ้าคุณต้องการอ่านเพียง derbydb จากตัวแปรสภาพแวดล้อมให้ทำดังต่อไปนี้:

set derby 

... และคุณจะได้รับสิ่งต่อไปนี้:

DERBY_HOME=c:\Users\amro-a\Desktop\db-derby-10.10.1.1-bin\db-derby-10.10.1.1-bin

7
สิ่งนี้จะแจ้งชื่อให้ฉันหรือไม่?
CMCDragonkai

53
@KevinMeredith: คำสั่งทั้งหมดในเชลล์ Windows ไม่คำนึงถึงขนาดตัวพิมพ์
Jon

12
@CMCDragonkai คุณใช้ PowerShell ไหม? ปรากฏว่ามันมีชุด hikacked ด้วยหนึ่งในคำสั่งให้ นี่เป็นหนึ่งในคุณสมบัติที่มีประโยชน์น้อยกว่า! ฉันถามคำถามเกี่ยวกับการปิดใช้งานที่นี่
JonnyRaa

2
ใครสามารถอัปเดตสิ่งนี้เพื่อรวมโซลูชัน PowerShell ได้หรือไม่ มันควรจะเป็นในอนาคตและทั้งหมด ขวา?
Bruno Bronosky

3
@NickTimmer เนื่องจากคุณกำลังพูดถึงทุบตีแทนเชลล์ของ Windows นี่เป็นคำถาม / คำตอบที่ไม่ถูกต้องสำหรับคุณ printenvดูที่
Jon

167

จอนมีคำตอบที่ถูกต้อง แต่ต้องอธิบายเพิ่มเติมอีกเล็กน้อยด้วยน้ำตาลประโยค ..

SET | more

ช่วยให้คุณเห็นตัวแปรทีละหน้าแทนที่จะเป็นล็อตทั้งหมดหรือ

SET > output.txt

ส่งออกไปยังไฟล์ output.txt ซึ่งคุณสามารถเปิดในNotepadหรืออะไรก็ได้ ...


7
ฉันไม่มีความคิดmoreใน Windows, +1
ardnew

มันสร้างขึ้นในฟังก์ชั่นบางอย่างเช่นกัน ตัวอย่างเช่นจะหน้าด้วย / p
จอห์นลอร์ด

@ardnew: ตอนนี้คุณรู้มากขึ้น ;-)
user2943111

106

ในการแสดงรายการตัวแปรสภาพแวดล้อมทั้งหมดใน PowerShell:

Get-ChildItem Env:

หรือตามที่ผู้ใช้แนะนำ 797717 เพื่อหลีกเลี่ยงการตัดทอนผลลัพธ์

Get-ChildItem Env: | Format-Table -Wrap -AutoSize

ที่มา: การสร้างและการแก้ไขตัวแปรสภาพแวดล้อม ( Windows PowerShell เคล็ดลับประจำสัปดาห์ )


4
แม้ว่าฉันจะไม่ใช้ PowerShell เพราะมันไม่ได้ผลสำหรับทุกคำสั่ง cmd นี่เป็นทางออกเดียวสำหรับการพิมพ์สวย (ใน 2 คอลัมน์) โดยไม่ต้องใช้ความพยายามมาก เพื่อให้ได้พฤติกรรมที่เหมือนกันในหน่วยคำสั่งคุณต้องการสิ่งนี้for /f "tokens=1,2 delims==" ...ซึ่งซับซ้อนมาก ...
ROMANIA_engineer

6
เพื่อหลีกเลี่ยงผลลัพธ์ที่ถูกตัดทอนฉันจะใช้สิ่งต่อไปนี้:Get-ChildItem Env: | Format-Table -Wrap -AutoSize
user797717

1
gci env:แทนGet-ChildItem Env:, ง่ายต่อการจดจำ
แมทต์ kepson

ที่สมบูรณ์แบบ! ฉันไม่เห็นว่าทำไมนี่ไม่ใช่คำตอบยอดนิยมที่จะซื่อสัตย์: / แก้ไข: โอ้รอฉันเห็นว่าทำไม ... คำถามเดิมไม่ได้เกี่ยวกับวิธีการทำใน Powershell แต่ในโรงเรียนเก่า Commandprompt: D
Yoeri Van Nieuwerburg

79

ทำงานเพียงแค่จากsetcmd

แสดงตั้งค่าหรือลบตัวแปรสภาพแวดล้อม ใช้โดยไม่มีพารามิเตอร์ชุดแสดงการตั้งค่าสภาพแวดล้อมปัจจุบัน


11

คุณสามารถใช้SETใน cmd

หากต้องการแสดงตัวแปรปัจจุบันก็SETเพียงพอแล้ว

หากต้องการแสดงตัวแปรบางอย่างเช่น 'เส้นทาง' SET PATHการใช้งาน

set /?สำหรับความช่วยเหลือประเภท


2
สิ่งนี้แตกต่างจากคำตอบที่มีอยู่หรือไม่
ปีเตอร์มอร์เทนเซ่น

7

อย่าเสียเวลา ค้นหาในรีจิสทรี:

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"

ส่งคืนน้อยกว่าคำสั่ง SET


2
แม้ว่ามันอาจจะเป็นจริง แต่ข้อแตกต่างอย่างหนึ่งคือการค้นหารีจิสตรีจะส่งคืนREG_EXPAND_SZคีย์ที่ไม่ขยาย ตัวอย่างเช่นreg query "HKCU\Environment"แสดงให้ฉันเห็นว่า%TEMP%ตัวแปรของฉันขึ้นอยู่กับค่าของ%USERPROFILE%ดังนั้นหากค่านั้นเปลี่ยนแปลงดังนั้นค่าจะเป็น%TEMP%เช่นนั้น ในทางตรงกันข้ามSETเพิ่งกลับมา"C:\Users\mpag\AppData\Local\Temp"
mpag

1
ทำไมคุณถึงพูดว่า "อย่าเสียเวลา" การเขียน "set" ในพรอมต์คำสั่งเร็วกว่า "reg query ... " หรือไม่
Alexandre Huat

4

หากคุณต้องการเห็นตัวแปรสภาพแวดล้อมที่คุณเพิ่งตั้งค่าคุณต้องเปิดหน้าต่างคำสั่งใหม่

ชุดตัวแปรที่มีตัวแปร setx นั้นมีอยู่ในหน้าต่างคำสั่งในอนาคตเท่านั้นไม่ใช่ในหน้าต่างคำสั่งปัจจุบัน ( Setx ตัวอย่าง )


4

ดังที่กล่าวไว้ในคำตอบอื่น ๆ คุณสามารถใช้setเพื่อแสดงรายการตัวแปรสภาพแวดล้อมทั้งหมดหรือใช้

set [environment_variable] เพื่อรับตัวแปรเฉพาะด้วยค่าของมัน

set [environment_variable]= สามารถใช้เพื่อลบตัวแปรจากพื้นที่ทำงาน


1
ใช่ แต่วิธีนี้ตอบคำถามได้อย่างไร
Peter Mortensen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.