Frage Wie bekomme ich das System-Gebietsschema in Windows 7 cmd?


Wie kann ich System-Gebietsschema in Windows 7 erhalten?

Ich meine etwas wie: cs_CZ.UTF-8

Ich habe versucht, "locale" in der Befehlszeile zu schreiben, aber das funktioniert nicht in Windows. Irgendwelche Vorschläge?


20
2017-08-23 17:07


Ursprung




Antworten:


Es gibt keinen bestimmten Befehl (oder zumindest keinen, den ich kenne), um diese Informationen zu erhalten, aber Sie können ihn zwischen den von systeminfo.exe.


15
2017-08-23 17:11



Wenn systeminfo in einer Befehlszeile ausgeführt wird, werden viele Informationen auf dem Bildschirm ausgegeben. Folgende relevante Informationen sind zu suchen: Systemgebietsschema: en-us; Englisch (USA) Eingabegebietsschema: en-us; Englisch (USA) - djondal
systeminfo / FO csv | ConvertFrom-Csv | Wählen Sie * Gebietsschema - Ogrish Man
@Ogrish Man: Dies scheint ein Powershell-Befehl zu sein, aber es gibt mir keine Ausgabe. Vielleicht weil die Header nicht auf Englisch sind. systeminfo.exe an sich funktioniert, wie gWaldos Antwort in PS - mivk


Get-UICulture oder Get-Host in der PowerShell

(Großschreibung optional)


9
2017-08-23 20:12





Wenn Sie das tatsächliche Gebietsschema benötigen, um andere Dinge in einer Batch-Datei zu tun, können Sie eine Batch-Datei (speichern Sie eine Textdatei als .bat-Erweiterung) mit den folgenden. Als Ausgangspunkt wird dies an der Eingabeaufforderung ausgegeben, zum Beispiel "en-us" (keine Anführungszeichen) Sie können auch die Variable! VERBOSE_SYSTEM_LOCALE verwenden! für das menschenlesbare Gebietsschema z.B. Englisch (USA)

@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
2017-07-04 11:13





Ihre Vorschläge schlagen fehl, weil sie auf die Suche nach einer Zeichenfolge angewiesen sind ("Gebietsschema des Systems") was sich abhängig vom aktuellen Gebietsschema ändert! Auf meiner französischen Win10Pro ist die Zeichenfolge "Option régionale du système"(mit akzentuiertem Buchstaben, der in einer CMD-Datei sehr schwierig zu handhaben ist).

Ich habe einige Tests gemacht und es scheint, dass auf meinem System die Zeilen über das Gebietsschema in der systeminfo-Ausgabe die einzigen sind, die ein Semikolon (";") enthalten:

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)

Darauf aufbauend (was auf anderen Systemen mit verschiedenen Sprachen möglicherweise nicht zutrifft) habe ich dies codiert get_locale.cmd Skript :

@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
    )
)

Das Ergebnis meines Skripts auf meinem System ist:

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)

Beachten Sie jedoch, dass die drei Umgebungsvariablen nur innerhalb des Skripts existieren. Sie bleiben NICHT in der CMD - Umgebung bestehen, nachdem das Skript beendet wurde (Nr Export Befehl wie in * nix).


0
2017-09-24 15:33





ich wieder.

Ich entdeckte eine leichte Verbesserung meines Skripts. Mit SETX kann man Umgebungsvariablen in der USER Umgebung speichern für Zukunft CMD Windows zu verwenden (wie in SETX /? zweite Bemerkung).

Dann ist die get_locale.cmd Skript wird:

@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
    )
)

Da der Wert möglicherweise mehrere Wörter lang ist, ist es für die Variable VERBOSE_SYSTEM_LOCALE erforderlich, %% C in Anführungszeichen zu schreiben, damit SETX wie erwartet nur einen Parameter empfängt.

Jetzt, in jedem Neu CMD-Fenster, diese Werte sind verfügbar:

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)

PS: Es wäre schön, wenn andere Mitwirkende aus anderen Ländern mit anderen Sprachen bestätigen würden, dass sie nach Semikolon suchen; funktioniert auf ihren Windows-Systemen. Danke im Voraus!


0
2017-12-16 01:26



Bitte überlegen Sie, diese Antwort mit Ihrer vorherigen zu kombinieren. - kbyrd