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


477

ใน Windows 7 เมื่อฉันเริ่มต้นพรอมต์คำสั่งจะมีคำสั่งให้แสดงเนื้อหาของตัวแปรสภาพแวดล้อม (เช่นJAVA_HOMEหรือPATHตัวแปร) หรือไม่?

ฉันได้พยายามด้วยecho $PATH, echo PATHและ$PATHแต่ไม่มีการทำงานเหล่านี้


26
@Daniel: ฉันรู้วิธีตั้งค่าตัวแปรสภาพแวดล้อมใน Windows ฉันเพียงแค่เปิด "คุณสมบัติของระบบ"> "ขั้นสูง" และ "ตัวแปรสภาพแวดล้อม" ดังนั้นฉันไม่คาดหวังคำตอบสำหรับคำถามของฉันในคำถามที่มีหัวข้อ"ฉันจะตั้งค่า PATH และตัวแปรสภาพแวดล้อมอื่น ๆ ได้อย่างไร" เพราะฉันรู้ว่า! ฉันไม่ได้ถามเกี่ยวกับวิธีการตั้งค่า
Jonas

ในแบบที่คุณพูดถูก - ในฐานะผู้เขียนคนหนึ่งในหัวข้ออื่น ๆ ฉันไม่ได้สังเกตถ้อยคำที่แน่นอนมาเป็นเวลานาน ฉันแก้ไขหัวข้อนั้นเพื่อสะท้อนเนื้อหาจริง ฉันจะไม่เปลี่ยนการลงคะแนน แต่ทั้งคู่เพราะฉันทำไม่ได้และเพราะฉันทำตามการประเมินของฉันว่าหัวข้อนี้ไม่แสดงความพยายามในการวิจัย
Daniel Beck

อาจเกี่ยวข้อง: stackoverflow.com/questions/1884071/…
Technophile

2
echo %path:;=&echo.%รับรายการเส้นทางที่คั่นด้วยเซมิโคลอน ทำงานหากตัวแปรไม่ประกอบด้วยอักขระพิเศษเช่นหรือ& ^
Andry

1
คำสั่งสำหรับพิมพ์เส้นทางในเชลล์คำสั่งของ Windows คือ:path
Vyacheslav Lanovets

คำตอบ:


534

ใน Windows Command-Prompt ไวยากรณ์คือ echo %PATH%

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

ในการส่งตัวแปรเหล่านั้นไปยังไฟล์ข้อความให้ป้อนคำสั่ง set > filename.txt


ที่เกี่ยวข้อง


1
ทำไมค่านี้แตกต่างจากที่ฉันระบุในคุณสมบัติคอมพิวเตอร์?
Johnny_D

2
@Johnny_D อาจเป็นไปได้ว่าคุณมีตัวแปรที่กำหนดขอบเขตผู้ใช้หรือคุณมีตัวแปรที่กำหนดขอบเขตเซสชัน (การใช้setคำสั่งภายในพรอมต์คำสั่งจะไม่ทำการเปลี่ยนแปลงหลังจากที่คุณปิดหน้าต่างคอนโซล) ที่แทนที่มัน
Scott Chamberlain

@RedGrittyBrick คุณจะแยกความแตกต่างของชุดข้อมูลเหล่านั้นตลอดทั้งระบบกับชุดที่มีไว้สำหรับผู้ใช้ปัจจุบันได้อย่างไร
Pacerier


119

เพื่อเติมเต็มคำตอบก่อนหน้านี้หากคุณใช้ Powershell echo %PATH%จะไม่ทำงาน คุณต้องใช้คำสั่งต่อไปนี้แทน:echo $Env:PATH


15
นอกจากนี้ใน PS: ls env:สำหรับการแสดงรายการตัวแปรสภาพแวดล้อมทั้งหมด
George Mauer

2
เนื่องจาก PowerShell เป็นเชลล์เริ่มต้นในระบบปฏิบัติการ Windows ยุคใหม่สิ่งนี้จึงต้องได้รับการโหวตให้สูงขึ้น มีคำตอบมากมายเหลือเกินที่ไม่สามารถใช้กับ Windows รุ่นใหม่ได้
Lev

1
@Lev คุณมีเวอร์ชันใดที่ไม่มี cmd
นักฟิสิกส์บ้า

ดังนั้นวิธีหนึ่งจะแสดงตัวแปรถ้าชื่อของมันมีจุด? ชอบartifactory.user.nameไหม echo $Env:artifactory.user.nameไม่ทำงาน (การไฮไลต์แนะนำว่าพยายามแสดงartifactoryตัวแปร)
YakovL

21

ในฐานะข้อมูลเพิ่มเติม: ขณะที่SETทำงานกับตัวแปรโกลบอลหรือตัวแปรระบบบางครั้งคุณต้องการเขียนและอ่านตัวแปรผู้ใช้และสิ่งนี้ทำได้ด้วยคำสั่งSETX SETX นั้นรวมอยู่ในการติดตั้งพื้นฐานของ Windows ที่เริ่มต้นด้วย Vista แต่ยังมีอยู่ใน Windows XP ด้วยการติดตั้ง Resource Pack

ข้อแตกต่างอย่างหนึ่งเกี่ยวกับ SETX คือคุณไม่สามารถอ่านตัวแปรในหน้าต่างคำสั่งเดียวกับที่คุณเขียนไว้คุณต้องเขียนคำสั่ง SETX ในหน้าต่าง Command หรือ Powershell หนึ่งหน้าต่างจากนั้นเปิดหน้าต่างใหม่เพื่ออ่านโดยใช้ ECHO

SETX ยังสามารถเขียนตัวแปรทั่วโลกหรือระบบ

ในการตั้งค่าตัวแปรผู้ใช้โดยใช้ SETX:

setx variable value

ในการตั้งค่าตัวแปรโกลบอลหรือระบบโดยใช้ SETX:

setx /m variable value

หากต้องการอ่านผู้ใช้หรือตัวแปรโกลบอล:

จำไว้ว่าคุณต้องเปิดหน้าต่าง Command หรือ Powershell ใหม่เพื่ออ่านตัวแปรนี้

echo %variable%

8

จาก SET /:

SET P

จะแสดงตัวแปรทั้งหมดที่ขึ้นต้นด้วยตัวอักษร 'P'

ตัวอย่างเช่นหากคุณต้องการค้นหาค่าของตัวแปรสภาพแวดล้อม% PATH% คุณสามารถพิมพ์set pathได้

นี่คือสั้นกว่า 3 ตัวอักษรecho %PATH%แต่โปรดทราบว่ามันจะแสดงรายการตัวแปรอื่น ๆ ที่ขึ้นต้นด้วย "เส้นทาง" (เช่น PATHEXT)


3

วิธีแก้ปัญหานั้นแตกต่างกันเล็กน้อยสำหรับฉัน: มันไม่รู้จักตัวแปรสภาพแวดล้อมของระบบJAVA_HOMEดังนั้นฉันต้องตั้งค่าJAVA_HOMEเป็นตัวแปรสภาพแวดล้อมของผู้ใช้ดังนั้นฉันจึงสามารถใช้% JAVA_HOME% ในการตั้งค่าตัวแปรสภาพแวดล้อมของระบบ

กลับมาทำงานฉันต้อง:

- เพิ่มตัวแปรสภาพแวดล้อมผู้ใช้: %JAVA_HOME%as:

"C:\Program Files\Java\jdk1.8.0_25";

- เพิ่มไปยัง%PATH%ตัวแปรสภาพแวดล้อมระบบ:

"%JAVA_HOME%\bin;"

- หลังบนบรรทัดคำสั่ง:

echo %JAVA_HOME%และมันได้รับเส้นทางที่ถูกต้อง (ก่อนที่มันจะไม่รับรู้); echo %PATH%และจะดึงข้อมูล "C: \ Program Files \ Java \ jdk1.8.0_25 \ bin" ซึ่งประกอบด้วยตัวแปรผู้ใช้% JAVA_HOME%;

และมันก็ได้ผลกับฉันด้วย ฉันหวังว่ามันจะช่วย !!


2

เพื่อแสดงเนื้อหาของตัวแปรสภาพแวดล้อมเช่น path, at command prompt type: echo %path%
เมื่อต้องการแสดงค่าในบรรทัดแยกต่างหากให้พิมพ์: set
เมื่อต้องการแสดงตัวแปรทั้งหมดที่ขึ้นต้นด้วย "h" ให้พิมพ์: set h
(กด Enter หลังจากพิมพ์เพื่อรับการตอบสนองจากคอมพิวเตอร์แล้ว duh!)

คำสั่งด้านบนใช้สำหรับคำสั่ง cmd ไม่ใช่ powerhell ใน PowerShell ให้พิมพ์: echo $env:pathหรือls env:path
หากต้องการแสดงบนบรรทัดแยกให้พิมพ์: ls env:
เมื่อต้องการแสดงตัวแปรทั้งหมดที่ขึ้นต้นด้วย "h" ให้พิมพ์: ls env:h*
เมื่อต้องการแสดงเนื้อหา / ค่าของตัวแปรทั้งหมดที่มี "java" ให้พิมพ์:ls env:*java*

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