मैं विंडोज 7 में सिस्टम लोकेल कैसे प्राप्त कर सकता हूं?
मेरा मतलब कुछ इस तरह है: cs_CZ.UTF-8
मैंने कमांड लाइन में "लोकेल" लिखने की कोशिश की लेकिन यह विंडोज में काम नहीं करता है। कोई सुझाव?
मैं विंडोज 7 में सिस्टम लोकेल कैसे प्राप्त कर सकता हूं?
मेरा मतलब कुछ इस तरह है: cs_CZ.UTF-8
मैंने कमांड लाइन में "लोकेल" लिखने की कोशिश की लेकिन यह विंडोज में काम नहीं करता है। कोई सुझाव?
जवाबों:
इस जानकारी को प्राप्त करने के लिए कोई विशिष्ट कमांड नहीं है (या कम से कम, ऐसा कोई नहीं जिसे मैं जानता हूं), लेकिन आप इसे उन लोगों के बीच पा सकते हैं systeminfo.exe
।
systeminfo.exe
अपने आप से काम करता है, जैसा कि PS में gWaldo का जवाब है
यदि आपको बैच फ़ाइल में सशर्त रूप से अन्य काम करने के लिए वास्तविक लोकेल की आवश्यकता है तो आप निम्न के साथ एक बैच फ़ाइल (.bat एक्सटेंशन के रूप में एक टेक्स्ट फ़ाइल सहेजें) बना सकते हैं। एक प्रारंभिक बिंदु के रूप में यह कमांड प्रॉम्प्ट पर प्रिंट होगा, उदाहरण के लिए, "एन-यू" (कोई उद्धरण नहीं) आप चर का उपयोग भी कर सकते हैं! VERBOSE_SYSTEM_LOCALE! मानव पठनीय स्थान जैसे अंग्रेजी (यूनाइटेडस्टेट्स) के लिए
@echo off
setlocal EnableDelayedExpansion
FOR /F "delims==" %%G IN ('systeminfo.exe') Do (
set input=%%G
for /l %%a in (1,1,100) do if "!input:~-1!"==" " set input=!input:~0,-1!
IF "!input:~0,13!"=="System Locale" (
set answer=!input:~15!
set answer=!answer: =!
set VERBOSE_SYSTEM_LOCALE=!answer:*;=!
call set SYSTEM_LOCALE_WITH_SEMICOLON=%%answer:!VERBOSE_SYSTEM_LOCALE!=%%
set SYSTEM_LOCALE=!SYSTEM_LOCALE_WITH_SEMICOLON:~0,-1!
echo !SYSTEM_LOCALE!
)
)
वास्तव में, आपके प्रस्ताव विफल हो जाते हैं, क्योंकि वे एक स्ट्रिंग (" सिस्टम लोकेल ") पर भरोसा करते हैं जो वर्तमान लोकेल के आधार पर बदलता है! मेरे फ्रेंच Win10Pro पर, स्ट्रिंग " विकल्प régionale du système " है (उच्चारण पत्र के साथ, जिसे सीएमडी फ़ाइल में ठीक से संभालना बहुत मुश्किल है)।
मैंने कुछ परीक्षण किया है, और ऐसा लगता है, MY सिस्टम पर, कि systeminfo आउटपुट में लोकेल के बारे में एक अर्द्ध-बृहदान्त्र वर्ण (";") को समाहित करने वाले हैं:
24/09/2017 17:18:43,23 | C:\CMD ()
> systeminfo | findstr ;
Option régionale du système: fr;Français (France)
Paramètres régionaux d'entrée: fr;Français (France)
उसके आधार पर (जो विभिन्न भाषाओं के साथ अन्य प्रणालियों पर सच नहीं हो सकता है), मैंने इस get_locale.cmd स्क्रिप्ट को कोडित किया है :
@echo off
setlocal EnableDelayedExpansion
FOR /F "delims==" %%A IN ('systeminfo.exe ^| findstr ";"') do (
FOR /F "usebackq tokens=2-3 delims=:;" %%B in (`echo %%A`) do (
set VERBOSE_SYSTEM_LOCALE=%%C
REM Removing useless leading spaces ...
FOR /F "usebackq tokens=1 delims= " %%D in (`echo %%B`) do (
set SYSTEM_LOCALE=%%D
)
set SYSTEM_LOCALE_WITH_SEMICOLON=!SYSTEM_LOCALE!;
set | findstr /I locale
REM No need to handle second line, quit after first one
goto :EOF
)
)
मेरी प्रणाली पर मेरी स्क्रिप्ट का परिणाम है:
24/09/2017 17:18:45,31 | C:\CMD ()
> get_locale.cmd
SYSTEM_LOCALE=fr
SYSTEM_LOCALE_WITH_SEMICOLON=fr;
VERBOSE_SYSTEM_LOCALE=Français (France)
हालांकि, चेतावनी दी जाती है कि तीन पर्यावरण चर केवल स्क्रिप्ट के अंदर ही मौजूद हैं, वे स्क्रिप्ट के समाप्त होने के बाद सीएमडी वातावरण में बने नहीं रहते हैं ( * nix के रूप में कोई निर्यात आदेश नहीं )।
मैं फिर से।
मुझे अपनी स्क्रिप्ट में थोड़ी वृद्धि का पता चला। SETX का उपयोग करने से भविष्य के CMD विंडोज का उपयोग करने के लिए USER वातावरण में पर्यावरण चर को संग्रहीत किया जा सकता है (जैसा कि SETX / दूसरी टिप्पणी में कहा गया है)।
फिर get_locale.cmd स्क्रिप्ट बन जाती है:
@ECHO OFF
SETLOCAL EnableDelayedExpansion
FOR /F "delims==" %%A IN ('systeminfo.exe ^| findstr ";"') DO (
FOR /F "usebackq tokens=2-3 delims=:;" %%B IN (`echo %%A`) DO (
SET VERBOSE_SYSTEM_LOCALE=%%C
setx VERBOSE_SYSTEM_LOCALE "%%C" 1>NUL
REM Removing useless leading spaces ...
FOR /F "usebackq tokens=1 delims= " %%D IN (`echo %%B`) DO (
SET SYSTEM_LOCALE=%%D
setx SYSTEM_LOCALE %%D 1>NUL
)
SET SYSTEM_LOCALE_WITH_SEMICOLON=!SYSTEM_LOCALE!;
setx SYSTEM_LOCALE_WITH_SEMICOLON !SYSTEM_LOCALE!; 1>NUL
SET | findstr /I locale
REM No need to handle second line, quit after first one
GOTO :EOF
)
)
VERBOSE_SYSTEM_LOCALE चर के लिए, चूंकि मान संभवतः कई शब्द लंबा है, इसलिए %% C को उद्धरणों में लपेटना आवश्यक है ताकि SETX को केवल एक ही पैरामीटर प्राप्त हो।
अब, नए सीएमडी विंडो में, ये मूल्य उपलब्ध होंगे:
16/12/2017 2:00:46 | C:\Users\Seagram ()
>set | findstr /i locale
SYSTEM_LOCALE=fr
SYSTEM_LOCALE_WITH_SEMICOLON=fr;
VERBOSE_SYSTEM_LOCALE=Français (France)
पुनश्च: यह अच्छा होगा यदि अन्य भाषाओं के साथ अन्य देशों के अन्य योगदानकर्ता पुष्टि कर सकते हैं कि अर्ध-कॉलन की तलाश है ';' उनके विंडोज सिस्टम पर काम करता है। अग्रिम में धन्यवाद!
System Locale: en-gb;English (United Kingdom)