विंडोज 7 सेमी में सिस्टम लोकेल कैसे प्राप्त करें?


23

मैं विंडोज 7 में सिस्टम लोकेल कैसे प्राप्त कर सकता हूं?

मेरा मतलब कुछ इस तरह है: cs_CZ.UTF-8

मैंने कमांड लाइन में "लोकेल" लिखने की कोशिश की लेकिन यह विंडोज में काम नहीं करता है। कोई सुझाव?

जवाबों:


17

इस जानकारी को प्राप्त करने के लिए कोई विशिष्ट कमांड नहीं है (या कम से कम, ऐसा कोई नहीं जिसे मैं जानता हूं), लेकिन आप इसे उन लोगों के बीच पा सकते हैं systeminfo.exe


3
कमांड लाइन पर systeminfo चलाते समय, बहुत सी जानकारी स्क्रीन पर आउटपुट होती है। देखने के लिए प्रासंगिक जानकारी है: सिस्टम लोकेल: en-us; अंग्रेजी (संयुक्त राज्य अमेरिका) इनपुट लोकेल: en-us; अंग्रेजी (संयुक्त राज्य अमेरिका)
djondal

systeminfo / एफओ सीएसवी | ConvertFrom-Csv | सिलेक्ट * लोकेल
सिर्फ एक शिक्षार्थी

@ ऑर्गनाइज मैन: यह एक पॉवरशेल कमांड लगता है, लेकिन यह मुझे कोई आउटपुट नहीं देता है। शायद इसलिए कि हेडर अंग्रेजी में नहीं हैं। systeminfo.exeअपने आप से काम करता है, जैसा कि PS में gWaldo का जवाब है
16:16 पर

9

Get-UICultureया Get-Hostपावरशेल में

(पूंजीकरण वैकल्पिक)


0

यदि आपको बैच फ़ाइल में सशर्त रूप से अन्य काम करने के लिए वास्तविक लोकेल की आवश्यकता है तो आप निम्न के साथ एक बैच फ़ाइल (.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!        
   )
)

0

वास्तव में, आपके प्रस्ताव विफल हो जाते हैं, क्योंकि वे एक स्ट्रिंग (" सिस्टम लोकेल ") पर भरोसा करते हैं जो वर्तमान लोकेल के आधार पर बदलता है! मेरे फ्रेंच 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 के रूप में कोई निर्यात आदेश नहीं )।


0

मैं फिर से।

मुझे अपनी स्क्रिप्ट में थोड़ी वृद्धि का पता चला। 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)

पुनश्च: यह अच्छा होगा यदि अन्य भाषाओं के साथ अन्य देशों के अन्य योगदानकर्ता पुष्टि कर सकते हैं कि अर्ध-कॉलन की तलाश है ';' उनके विंडोज सिस्टम पर काम करता है। अग्रिम में धन्यवाद!


कृपया इस उत्तर को अपने पिछले एक के साथ संयोजित करने पर विचार करें।
kbyrd

@ सीग्राम - इसके लिए धन्यवाद - मैं यह पुष्टि कर सकता हूं कि यह अंग्रेजी (यूनाइटेड किंगम) के लिए काम करता है:System Locale: en-gb;English (United Kingdom)
स्टीव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.