คำถามติดแท็ก environment-variables

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

1
วิธีแก้ไขสภาพแวดล้อม $ PATH ใน Mac OS X [ซ้ำ]
คำถามนี้มีคำตอบอยู่ที่นี่แล้ว: ฉันจะรีเซ็ตตัวแปร $ PATH บน Mac OS X ได้อย่างไร 4 คำตอบ เมื่อเร็ว ๆ นี้ฉันพยายามติดตั้งทับทิมและฉันก็สับสนกับสภาพแวดล้อมที่แปรปรวน เป็นผลให้ฉันไม่สามารถใช้พา ธ ในไฟล์. profile หรือไฟล์พา ธ อื่น ๆ ที่ฉันตั้งค่ามาก่อน (ฉันลองใช้. bash_profile, .zschr และอื่น ๆ ) ฉันจะแก้ไขปัญหานี้ได้อย่างไร

1
วิธีใช้ถ้าคำสั่งในไฟล์แบตช์
ฉันมีสิ่งต่อไปนี้สำหรับลูปในไฟล์แบตช์ for /f %%y in ('findstr /C:"%%c" out.txt ^| sed "s/.*%%c \([^>]*\).*/\1/i"') do SET RESULT=%%y echo.%%a;%%b;%%c;!RESULT!>>D:\outputTA.txt ตัวแปรของฉันใน for loop คือ %%y และฉันต้องการใช้ถ้าคำสั่งในทาง: if my variable > 1000 then set Result to round my variable / 32 else set Result to round my variable ไม่มีใครรู้ว่าฉันสามารถทำได้ในไฟล์ Batch?

1
ปัญหาตัวแปรสภาพแวดล้อมในเชลล์
ฉันใช้ Red Hat Linux Enterprise 5 ฉันรู้ทฤษฎีว่า - การใช้การส่งออกเพื่อตั้งค่าตัวแปรสภาพแวดล้อมตัวแปรสภาพแวดล้อมจะใช้กับสภาพแวดล้อมปัจจุบันและเด็ก แต่ไม่ใช้การส่งออกเพื่อตั้งค่าตัวแปรสภาพแวดล้อมตัวแปรสภาพแวดล้อมจะใช้กับ สภาพแวดล้อมปัจจุบัน ความสับสนของฉันคืออะไรคำจำกัดความที่แน่นอนของ "สภาพแวดล้อมของเด็ก" และ "สภาพแวดล้อมปัจจุบัน" คืออะไร? ตัวอย่างเช่น, $ var1=123 $ echo "Hello [$var1]" ค่าของ var1 (ซึ่งคือ 123) ถูกพิมพ์ในเชลล์ แต่ฉันคิดว่า echo เป็นคำสั่งที่เรียกใช้โดยเชลล์ปัจจุบันและ (คำสั่ง echo) ควรเป็นสภาพแวดล้อมลูกของเชลล์ปัจจุบันและค่าของ var1 ไม่ควร (เพราะ ไม่ได้ใช้ export var1 = 123) echo มีคำแนะนำอะไรมั้ย? ขอบคุณล่วงหน้า!

3
ยัติภังค์หมายถึงอะไรในไฟล์แบตช์ของ Windows
โดยเฉพาะฉันมีปัญหาในการเข้าใจเครื่องหมายขีดคั่นในบรรทัดต่อไปนี้ซึ่งมาจาก วิกิพีเดีย if not -%1-==-- echo Argument one provided if -%1-==-- echo Argument one not provided & exit /b เพื่อทดสอบว่าตัวแปรนั้นมีอยู่จริงหรือถูกนิยามมีสองวิธีที่ฉันเรียนรู้จาก ที่นี่ : IF DEFINED MyVar (ECHO MyVar IS defined) ELSE (ECHO MyVar is NOT defined) IF "%MyVar%"=="" (ECHO MyVar is NOT defined) ELSE (ECHO MyVar IS defined) ดังนั้นเครื่องหมายยัติภังค์ (1) รอบ …

1
ฉันจะเพิ่มเส้นทางใหม่ไปยังตัวแปรสภาพแวดล้อม 'PATH' ของผู้ใช้ปัจจุบันบน Win 7 ได้อย่างถาวรได้อย่างไร [ซ้ำ]
คำถามนี้มีคำตอบอยู่ที่นี่แล้ว: วิธีอัปเดตตัวแปรสภาพแวดล้อมผู้ใช้ PATH จากบรรทัดคำสั่ง 3 คำตอบ ฉันกำลังทำงานบน Windows 7 ฉันจะเพิ่มเส้นทางใหม่ให้กับตัวแปรสภาพแวดล้อม 'PATH' ของผู้ใช้ปัจจุบันได้อย่างไร ฉันพยายามทำด้วย wmic: wmic ENVIRONMENT where "name='Path' and username='<%USERNAME%>'" set VariableValue="%Path%;%NEW_FOLDER_PATH%" ผลลัพธ์คือ: No Instance(s) Available และไม่มีอะไรได้รับผลกระทบ อย่างไรก็ตามถ้าฉันลองด้วยสิทธิ์การดูแลต่อไปนี้: wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue="%Path%;%NEW_FOLDER_PATH%" มันสามารถประสบความสำเร็จได้เสมอ NEW_FOLDER_PATH ไม่มีช่องว่างใด ๆ ฉันจะแก้ไขปัญหานี้ได้อย่างไร

2
ตัวแปรสภาพแวดล้อมไม่โหลดเมื่อเริ่มต้น
ฉันพบปัญหาแปลก ๆ ซึ่งดูเหมือนว่าตัวแปรสภาพแวดล้อมของฉันจะโหลดขึ้นอย่างถูกต้องเมื่อใดก็ตามที่ Windows เริ่มทำงาน นี่เป็นความเจ็บปวดที่จะคิดออกว่าเกิดอะไรขึ้นและฉันก็โชคดีอย่างหมดจด ฉันเริ่มสังเกตเห็นปัญหาเมื่อใดก็ตามที่ฉันจะรีสตาร์ทหรือบูตและลองเปิดใช้งานชุดมาตรฐานของฉัน โดยเฉพาะอย่างยิ่งฉันจะพยายามเปิดใช้ Eclipse และมันจะล้มเหลวในการเริ่มต้นและทำราวกับว่าฉันไม่มี JDK ขณะแก้ไขปัญหานี้ฉันจะพยายามสะท้อนตัวแปรสภาพแวดล้อมของฉัน (โดยเฉพาะ Path) และฉันจะได้รับสิ่งต่อไปนี้: C: \ Windows \ System32 & gt; echo% PATH% C: \ Windows \ system32 \ NV;. ณ จุดนี้ฉันจะตรวจสอบตัวแปรสภาพแวดล้อมของฉันและพวกเขาจะดูดี หลังจากผ่านไปครู่หนึ่งฉันสังเกตว่าหลังจากฉันทำการตรวจสอบนี้แล้วตัวแปรก็น่าจะดีขึ้น: C: \ Windows \ System32 & gt; echo% PATH% C: \ Program Files ... [หลายข้อความ] ... …

2
วิธีที่เหมาะที่สุดในการสลับรายการในตัวแปรสภาพแวดล้อม $ PATH คืออะไร
ใน Linux และ / หรือ Mac OSX เป็นวิธีที่ดีที่สุดในการย้ายรายการในตัวแปรสภาพแวดล้อม $ PATH ไปยังด้านหน้าของค่าดังนี้: / foo / บาร์: / หนึ่ง / สอง / สาม / opt / local / bin / home / ผู้ใช้ / bin กลายเป็น / home / ผู้ใช้ / bin: / foo / บาร์: / หนึ่ง / สอง / สาม …

1
ฉันจะเรียกใช้คอมไพเลอร์รุ่นที่ถูกต้องได้อย่างไรเมื่อใช้พรอมต์คำสั่งยกระดับ
ฉันมีคอมไพเลอร์ typescript (tsc.exe) สองรุ่นในระบบของฉัน (1.0 และ 1.5) และฉันไม่สามารถลบรุ่นก่อนหน้าได้เนื่องจากติดตั้งกับ Visual Studio 2013 พวกเขาอยู่ที่: C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\tsc.exe และ C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.5\tsc.exe ฉันไปแล้วและเปลี่ยนเส้นทางของระบบของฉันให้ชี้ไปที่ไดเรกทอรีใหม่กว่า .. ถ้าฉันเรียกใช้คอมไพเลอร์จากบรรทัดคำสั่งโดยพิมพ์tsc.exeเป็นบัญชีผู้ใช้ของฉันฉันได้รับที่ถูกต้อง ถ้าฉันเรียกใช้คอมไพเลอร์จากบรรทัดคำสั่งด้วย UAC ฉันได้รับผิด (เก่า) หนึ่ง ฉันจะทำให้ระบบของฉันใช้อันใหม่กว่าภายใต้พรอมต์คำสั่งที่ยกระดับได้อย่างไร

1
รายการ Setenv แก้ไข Centos 5.11
เคยมองหาคำตอบ แต่ไม่มีอะไรน่าจะให้คำตอบเดียวง่ายๆ (ฉันไม่ใช่อัจฉริยะคอมพิวเตอร์) ฉันต้องการแก้ไขหนึ่งในตัวแปร (ฉันเห็นพวกเขาด้วย setenv commant) บนเซิร์ฟเวอร์ centos 5.11 ฉันเหนื่อย: bash -c "export MXIB_MAILLOGTO1=new@test.com; echo \$MXIB_MAILLOGTO1" (also tried) bash -c "set MXIB_MAILLOGTO1=new@test.com; export MXIB_MAILLOGTO1; echo \$MXIB_MAILLOGTO1" ด้านบนยังคงพิมพ์ค่าเดิมไม่ใช่ new@test.com

1
Unix / Linux - ไฟล์หน่วยบริการไม่สามารถจดจำชุดตัวแปร env ใน / etc / environment
ฉันมีการตั้งค่าตัวแปรสภาพแวดล้อมอย่างถูกต้องสิ่งต่อไปนี้ /etc/environment ฉันมั่นใจว่าโหลดได้อย่างถูกต้องผ่าน/etc/profileการแก้ไข และฉันสามารถสะท้อนเพื่อยืนยัน แต่เมื่อฉันสร้างไฟล์หน่วยสำหรับบริการของฉันมันล้มเหลวเพราะตัวแปรสภาพแวดล้อมหายไป อย่างไรก็ตามฉันสามารถเริ่มสคริปต์ด้วยตัวเองตามปกติ นี่คือไฟล์หน่วยบริการของฉัน: [Unit] Description=Zookeeper unit for this machine AssertPathExists=/opt/kafka [Service] Type=simple ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh แสดง journalctl ที่javaไม่พบ - แต่มีจาวาผ่านเส้นทาง $ JAVA_HOME ซึ่งพบได้ง่ายเมื่อฉันเริ่มต้นโดยตรงจากทุบตี ฉันไม่ใช่ผู้ใช้ที่เป็นผู้ดูแลระบบ :) ดังนั้นความผิดพลาดที่โง่ ๆ อาจเกิดขึ้นที่นี่ กรุณามีคนแนะนำ ฉันควรจะเพิ่มในไฟล์ system.conf และโหลด daemon ใหม่หรือไม่ ความนับถือ,

2
ตั้งค่าตัวแปรสภาพแวดล้อมจากภายใน bash shell
มีวิธีการตั้งค่าตัวแปรสภาพแวดล้อมจากภายในเชลล์สคริปต์ (bash) หรือไม่? ฉันต้องการตั้งค่าตัวแปรสภาพแวดล้อมบางอย่างในเซิร์ฟเวอร์บางเครื่องโดยใช้สคริปต์ขนาดเล็กแทนที่จะพิมพ์ บางคนโพสต์ฟอรั่มเชื่อว่ามันเป็นไปไม่ได้ ความคิดใด ๆ


2
ปัญหาการตั้งค่าตัวแปรสภาพแวดล้อม (โดยเฉพาะ PATH) และการใช้ cd ใน cmd ใน windows 10
ฉันกำลังติดตามกวดวิชาเพื่อตั้งค่า Apache Storm (นั่นเป็นเพียงบริบท - มันไม่สำคัญสำหรับความผิดพลาดของฉัน) ดังนั้นจึงบอกให้ฉันตั้งค่าตัวแปรสภาพแวดล้อมบางอย่างโดยเฉพาะ%JAVA_HOME%และ%STORM_HOME%เป็นC:\Java\jdk1.8.0_60\และC:\storm-0.9.1-incubating-SNAPSHOT-12182013\ตามลำดับ ฉันไม่เคยทำสิ่งนี้มาก่อนเลยดังนั้นฉันจึงค้นหาวิธีการนี้และฉันก็วิ่ง: C:\>setx %JAVA_HOME% C:\JAVA\jdk1.8.0_60\ และมันให้: SUCCESS: Specified value was saved. จากนั้นฉันก็: C:\>setx %STORM_HOME% C:\storm-0.9.1-incubating-SNAPSHOT-12182013\ และมันก็ให้สิ่งเดียวกัน: SUCCESS: Specified value was saved. จากนั้นกวดวิชากล่าวว่าการเพิ่มการ%STORM_HOME%\bin;%JAVA_HOME%\bin;C:\Python27;C:\Python27\Lib\site-packages\;C:\Python27\Scripts\; PATHฉันเข้ามาC:\>PATHเพื่อดูว่ามันคืออะไรในปัจจุบันและมันให้: PATH=C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\ ดังนั้นฉันคิดว่าฉันสามารถเพิ่มได้โดยการทำ C:\>setx PATH C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;%STORM_HOME%\bin;%JAVA_HOME%\bin;C:\Python27;C:\Python27\Lib\site-packages\;C:\Python27\Scripts\; ในคำอื่น ๆ ผมก็พยายามโทรsetxในPATHและฉันจะตั้งค่ากับสิ่งที่มันเป็นอยู่ในปัจจุบันและมีสิ่งที่กวดวิชากล่าวต่อท้าย มันให้SUCCESS: Specified value was saved.อย่างไรก็ตามเมื่อฉันป้อน: C:\>PATH มันคืนค่าเดิม (สิ่งที่ฉันพยายามต่อท้ายไม่ได้อยู่ที่นั่น) ฉันลองวิธีอื่น ฉันวิ่ง C:\>PATH=%PATH%;%STORM_HOME%\bin;%JAVA_HOME%\bin;C:\Python27;C:\Python27\Lib\site-packages\;C:\Python27\Scripts\; จากนั้นเมื่อฉันป้อนC:\>PATHมันจะส่งคืน PATH …

1
การแก้ไขตัวแปรสภาพแวดล้อม Path ไม่ทำงาน
ฉันมีตัวแปร PATH ของฉันตั้งอยู่บนเครื่อง Windows 7 ของฉันและทุกอย่างดูปกติเมื่อฉัน echo %Path% เส้นทางดูดีและคั่นด้วย ";" เหมือนปกติอย่างไรก็ตามเมื่อฉันพยายามเรียกใช้คำสั่งที่กำหนดเองใด ๆ (เช่น git) ฉันได้รับสิ่งที่ชอบ 'git' is not recognized as an internal or external command, operable program or batch file. สิ่งนี้เกิดขึ้นแม้ว่าตัวแปรพา ธ ของฉันจะแสดงไฟล์ C: \ Program (x86) \ Git \ bin; เป็นหนึ่งในเส้นทาง ถ้าฉันรัน exe จาก Windows Explorer มันก็ใช้ได้ดี นอกจากนี้ฉันได้ลองรีสตาร์ท cmd …

1
Powershell: ตัวแปรแบบไดนามิกภายใน foreach
ฉันกำลังพยายามคำนวณทางคณิตศาสตร์สำหรับรายการแบบไดนามิกของผู้ใช้ที่ฉันจะใช้เพื่อเรียกใช้การค้นหาและนับผลลัพธ์บางอย่างโดยไม่ระบุชื่อ ตัวอย่างเช่น: $users = Get-ADUser -filter blah [int]$usercount = $users.count for ($z=1; $z -le $usercount; $z++) { **** create variable here - $user$z *** } เมื่อสร้างตัวแปรฉันต้องการให้มีลูปเพิ่มเติมโดยที่ฉันจะเพิ่มจำนวนลงในหมายเลขที่เก็บไว้ในตัวแปรแล้ว และไม่ฉันไม่สามารถใช้ตัวแปร $ user ได้เพราะจะต้องคงอยู่หลังจากลูป foreach นี้สิ้นสุด ดังนั้นคำถามคือฉันจะสร้างตัวแปรที่เพิ่มขึ้นโดยไม่ทราบจำนวน จำกัด ของวัตถุที่เป็นไปได้อย่างไร --- แก้ไข --- การเพิ่มตัวอย่างง่ายๆของสิ่งที่ฉันกำลังพูดถึง ... หลังจากข้อเสนอแนะฉันกำลังดูแฮชเทเบิล แต่ก็ยังหาวิธีอ้างอิงไม่ได้ ลองนึกภาพเกมลูกเต๋าระหว่างรายชื่อผู้คนที่มีหลายรอบ ฉันต้องการเพิ่มขึ้นต่อรอบทั้งหมดของพวกเขา ปัญหาของฉันคือบรรทัดสุดท้ายที่ฉันพยายามอัพเดตผลรวมด้วยการหมุน ฉันจะอ้างอิงค่า hashtable ได้อย่างไร [CmdletBinding()] param …

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