कैसे एक बैच स्क्रिप्ट में पीसी का नाम खोजने के लिए?


18

मुझे अपने बैच प्रोग्राम को चलाने वाले पीसी का नाम कैसे मिलेगा?

मैं एक पीसी का नाम खोजना चाहूंगा जो मेरे बैच प्रोग्राम को चला रहा है और इसे एक चर के रूप में स्टोर करने में सक्षम है। कोई मदद?


4
आप एक सिस्टम के होस्टनाम को cmd या शक्तियां कमांड लाइन से पुनः प्राप्त कर सकते हैं hostname। आपको इसे एक संस्करण के रूप में संग्रहीत करने की आवश्यकता नहीं है, बस इसे इनलाइन के रूप में आपको इसकी आवश्यकता है।
फ्रैंक थॉमस

@FrankThomas - आप इसके बजाय (शायद एक छोटे उदाहरण के साथ) इसका जवाब क्यों नहीं देते?
निफले

2
hostnameएक exe है, और जब यह कंसोल पर मशीन का नाम आउटपुट करता है, तो इसे बैच फ़ाइल में कैप्चर करना गैर-तुच्छ होगा। सौभाग्य से, पहले से ही एक पर्यावरण चर सेट है, और ComputerNameठेठ विंडोज़ सिस्टम पर उपयोग करने के लिए उपलब्ध ( ) है।
विकास गुप्ता

जवाबों:


10

जैसा कि विकास गुप्ता ने उत्तर दिया है, आप पहले से परिभाषित %COMPUTERNAME%पर्यावरण चर का उपयोग कर सकते हैं जिसमें पहले से ही कंप्यूटर का नाम है। एक व्यावहारिक दृष्टिकोण से, यह आपको चाहिए।

हालांकि, एक बैच फ़ाइल के लिए मूल्य को ओवर-राइट करना संभव है, इसलिए यह गारंटी नहीं है कि मूल्य सही है।

आप सीधे कंप्यूटर का नाम पढ़ने के लिए WMIC का उपयोग कर सकते हैं।

for /f "skip=1 delims=" %%A in (
  'wmic computersystem get name'
) do for /f "delims=" %%B in ("%%A") do set "compName=%%A"

अतिरिक्त लूप अनचाहे कैरिज रिटर्न वर्णों को समाप्त कर देता है जो WMIC के यूनिकोड आउटपुट के साथ FOR / F इंटरैक्ट करने की एक कला है। केवल एक लूप के साथ प्रत्येक पंक्ति के अंत में एक गाड़ी वापसी होती है जो समस्याओं का कारण बन सकती है।


1
क्या सिर्फ कॉल करने के बजाय वशीकरण का उपयोग करने का कोई कारण है hostname?
eis

मैंने जवाब लिखने के बाद सोचा था कि। यह निश्चित रूप से सरल होगा। मैं इन मुद्दों पर कोई विशेषज्ञ नहीं हूं, लेकिन serverfault.com/q/260563/201695 के आधार पर , मुझे लगता है कि होस्ट नाम और कंप्यूटर का नाम समान होने की गारंटी नहीं है। लेकिन मुझे लगता है कि उन्हें सामान्य परिस्थितियों में समान माना जाता है।
डेबनहम

26

विंडोज पर, आमतौर पर एक पर्यावरण चर पहले से ही सेट और आपके उपयोग के लिए उपलब्ध है -

echo %ComputerName%

1
विंडोज के कौन से संस्करण इस पर लागू होते हैं? (विंडोज 7. में मेरे लिए काम किया)
डेविड रिचरबी

1
यह चर कम से कम विंडोज एनटी के लिए सभी तरह से मौजूद है।
मैं कहता हूं कि मोनिका

दिलचस्प रूप से पर्याप्त है, हालांकि, यह एक शक्तिशाली तरीके से काम नहीं करेगा; केवल cmd.exe में। अजीब बात है।
फ्रैंक थॉमस

पॉवरशेल के पास पर्यावरणीय चर जैसी विशेष चीजों का प्रतिनिधित्व करने का अपना तरीका है ... निम्नलिखित कार्य -Get-Item Env:\ComputerName
विकास गुप्ता

1
@VikasGupta आप बस इस्तेमाल कर सकते हैं $env:computername(केस-असंवेदनशील भी)।
बॉब

0

PowerShell में आप भी उपयोग कर सकते हैं:

[Environment]::MachineName

यहां मूल्य .Net से आता है इसलिए यह उपयोग करने के मुद्दे से बचा जाता है $Env:ComputerName


उपयोग करने का मुद्दा क्या है $Env:ComputerName?
छाया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.