TEMP vs TMP ในตัวแปรสภาพแวดล้อม


20

ถูกต้องหรือไม่ที่จะมีตัวแปรสภาพแวดล้อมทั้งสองนี้คือ TEMP และ TMP หากฉันทำการเปลี่ยนแปลงอย่างใดอย่างหนึ่งฉันควรทำการเปลี่ยนแปลงอื่น ๆ อย่างเดียวกันหรือไม่ ตัวอย่างเช่นฉันติดตั้ง cygwin และทิศทางบอกให้ฉันเปลี่ยนตัวแปร PATH แต่ทั้ง TEMP และ TMP มีตัวแปรพา ธ ความแตกต่างระหว่างสองคืออะไร?

สกรีนช็อตของตัวแปรสภาพแวดล้อม

ไม่แน่ใจว่าทำไมผู้คนถึงต้องการเห็นสิ่งนี้ แต่นี่คือค่าของพา ธ : พา ธ ใน TEMP: Shared \ Windows Files \ Microsoft Files \ Common C: \ Program Files \ Common Files \ Microsoft (x86) \ Common Shared \ Windows Files \ Microsoft Windows Live; C: \ Program Files (x86) \ NVIDIA Corporation \ PhysX \ Common;% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Program Files \ x86) \ Common Files \ Acronis \ SnapAPI \; C: \ Program Files (x86) \ Windows Kits \ 8.1 \ Windows ชุดเครื่องมือประสิทธิภาพ Performance \ \ SQL Server \ 110 \ Tools \ Microsoft SQL Server \ 110 \ Tools \ Binn \; C: \ Program ไฟล์ (x86) \ Windows Live \ Shared

พา ธ ใน TMP:% USERPROFILE% \ AppData \ Local \ Temp


ตัวแปร Path ใน temps อยู่ที่ไหนฉันไม่เห็นมันใน shot screen ของคุณ
user151019

@ มาร์คมันสำคัญอะไร?
Celeritas

@DavidMarshall มันสำคัญอย่างไร?
Celeritas

คำถามของฉันไม่ใช่วิธีการเปลี่ยนตัวแปรพา ธ และถ้าเป็นคำตอบของคุณก็คงผิดเพราะประเด็นของฉันคือเมื่อมีการเปลี่ยนแปลงตัวแปรใด ๆ ควรจะทำกับ TEMP, TMP หรือทั้งสองอย่าง และคุณไม่ได้ระบุ
Celeritas

3
ลองอ่านบทความนี้ทำไมถึงมีทั้งตัวแปรสภาพแวดล้อม TMP และ TEMP และอันไหนที่ถูกต้อง? ตามนี้TMPอาจเป็นคนที่ชอบ (เนื่องจากGetTempFileNameฟังก์ชั่น) ...
aschipfl

คำตอบ:


10

ในการตอบคำถามโดยเฉพาะ:

ความแตกต่างระหว่างสองคืออะไร?

ไม่มีความแตกต่าง พวกเขาเป็นเพียงนามแฝงที่แตกต่างกันสำหรับเส้นทางเดียวกัน มาร์คกล่าวถึงบางโปรแกรมใช้ในขณะที่ใช้งานอื่น%TMP%%TEMP%Windows กำหนดให้ทั้งสองเส้นทางเดียวกันโดยค่าเริ่มต้นเพื่อให้แน่ใจว่ามีความสอดคล้องกันระหว่างโปรแกรมต่าง ๆ และแม้แต่ป้องกันข้อผิดพลาดของนักพัฒนาเช่นการใช้ทั้งสองอย่างในโปรแกรมเดียวกัน

นอกจากนี้ยังทราบว่า%Path%ตัวแปรมีอะไรจะทำอย่างไรกับการอย่างใดอย่างหนึ่งหรือ%TMP% เป็นตัวแปรระบบในขณะที่และเป็นทั้งตัวแปรระบบเช่นเดียวกับตัวแปรผู้ใช้ รุ่นระบบเชื่อมโยงไปยัง AFAIK ผู้ใช้ "ระบบ" เท่านั้นที่สามารถใช้ตัวแปรเหล่านั้นได้จริงตามที่เห็นได้จากการทดสอบอย่างง่าย เปิดหน้าต่าง cmd และพิมพ์หรือจากนั้นจะคืนค่าพา ธ ที่กำหนดไว้ในตัวแปรผู้ใช้ อย่างไรก็ตามเนื่องจากไม่มีรุ่นผู้ใช้ (โดยค่าเริ่มต้น) คุณสามารถทำได้และส่งคืนค่าของตัวแปรระบบ%TEMP%%Path%%TMP%%TEMP%C:\windows\TEMPecho %TMP%echo %TEMP%%Path%echo %Path%

ฉันไม่แน่ใจทั้งหมดว่าโปรแกรมใช้ตัวแปรระบบ "เส้นทาง" ซึ่งน่าจะเป็นสิ่งที่ cygwin ถูกอ้างถึง แต่ไม่ว่าฉันจะมั่นใจได้อย่างไรว่ามันไม่มีส่วนเกี่ยวข้องกับ TMP หรือ TEMP

หวังว่าจะตอบคำถามของคุณ

แก้ไข: ฉันเพิ่งจำสิ่งที่%Path%มีไว้ - มันช่วยให้คุณเข้าถึงไฟล์ใด ๆ ที่อยู่ในเส้นทางใด ๆ ที่ระบุไว้ในตัวแปรโดยไม่จำเป็นต้องใช้เส้นทางแบบเต็มไปยังไฟล์ ตัวอย่างเช่นการเพิ่ม "C: \ myprog \ bin" เพื่อ% เส้นทาง% จะช่วยให้คุณเพียงแค่พิมพ์myprogหรือmyprog --helpฯลฯ "C:\myprog\bin\myprog.exe" --helpเป็นบรรทัดคำสั่งโดยไม่ต้องพิมพ์ออกเส้นทางที่เต็มรูปแบบเช่น แน่นอนว่าการใช้บรรทัดคำสั่งเป็นเพียงตัวอย่างเท่านั้นมันช่วยให้โปรแกรมหรืออินเตอร์เฟสสามารถเข้าถึงไฟล์ประเภทใดก็ได้โดยไม่จำเป็นต้องใช้พา ธ เต็ม


แตกต่างกันไปบางโปรแกรมใช้โปรแกรมหนึ่งและบางโปรแกรมใช้เพื่อให้คุณต้องการทั้งคู่
user151019

น่าสนใจ ฉันไม่สามารถบีบอัดไดเรกทอรีได้เพราะบางครั้งฉันถูกปฏิเสธการเข้าถึง การเปลี่ยน TEMP และ TMP เป็น%USERPROFILE%\AppData\Local\Tempแก้ไขหนึ่งในปัญหาของฉัน แต่สร้างอีกมากมาย C:\Windows\Tempผมเปลี่ยนมันกลับไป หากมีรุ่นผู้ใช้ระบบสามารถใช้C:\Windows\Tempในขณะที่ฉันสามารถใช้%USERPROFILE%\AppData\Local\Tempและทุกคนมีความสุข ฉันจะลองดู ขอบคุณ!
inf3rno

3

คุณต้องการทั้งสองอย่างเนื่องจากโปรแกรมต่าง ๆ ใช้โปรแกรมที่ต่างกัน

พวกเขาไม่จำเป็นต้องตั้งค่าไว้ในที่เดียวกันเพราะโปรแกรมที่เขียนไม่ดีเท่านั้นที่จะใช้ทั้งคู่โดยสมมติว่าพวกเขาชี้ไปที่สิ่งเดียวกัน

/ tmp เป็นไดเร็กทอรีทั่วไปสำหรับไฟล์ชั่วคราวใน Unix และใช้ตัวแปรสภาพแวดล้อม TMPDIR

จากหน่วยความจำ (เมื่อฉันใช้สิ่งนี้ในช่วงกลางยุค 80) TEMP เป็นต้นฉบับที่ใช้ใน DOS และ TMP มีแนวโน้มที่จะใช้โดยโปรแกรมที่พอร์ตจาก Unix ให้ตรงกับ / tmp อย่างไรก็ตามเมื่อโปรแกรมถูกเขียนใน DOS เนื่องจากไม่มีการควบคุมนักพัฒนาที่แตกต่างกันใช้โปรแกรมที่แตกต่างกัน ใน Windows สมัยใหม่ค่าเริ่มต้นของ Microsoft เหมือนกันสำหรับทั้งคู่ดูเอกสารนี้


2
ที่จริงตัวแปร SUS TMPDIRมาตรฐานคือ มาตรฐานไม่ได้กล่าวถึงอย่างใดอย่างหนึ่งTMPหรืออย่างใดอย่างหนึ่งTEMPซึ่งเกิดขึ้นในโลก DOS
JdeBP

@J, SUS คืออะไร
Pacerier

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