Batch file 如何知道什么是语言;“违约”;公用事业费?

Batch file 如何知道什么是语言;“违约”;公用事业费?,batch-file,command-line,Batch File,Command Line,我正在批量创建一个工具,用于检查磁盘驱动器是否存在错误,并使用CHKDSK命令修复它们 此命令仅适用于法国机器:echo | CHKDSK!修理/f并且不在英语机器上工作 此命令仅适用于英文计算机:echo Y | CHKDSK!修理/f和dosen不在法国机器上工作 这就是我目前所做的: @echo off Title Check Disk drives for errors and fix them by Hackoo 2016 mode con cols=65 lines=5 &

我正在批量创建一个工具,用于检查磁盘驱动器是否存在错误,并使用
CHKDSK
命令修复它们

此命令仅适用于法国机器:
echo | CHKDSK!修理/f
并且不在英语机器上工作

此命令仅适用于英文计算机:
echo Y | CHKDSK!修理/f
和dosen不在法国机器上工作

这就是我目前所做的:

@echo off
Title Check Disk drives for errors and fix them by Hackoo 2016
mode con cols=65 lines=5 & Color 0A
set TmpLog=TmpLog.txt
set Log=%computername%_%~n0.txt
If Exist %TmpLog% Del %TmpLog%
If exist %Log% Del %Log%
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=2" %%i in ('wmic logicaldisk where "drivetype=3" ^|find /i ":"') do (
    set "fix=%%i"
        Call :Affich !fix!
    (
        echo !fix! Drive 
        echo ************************
        echo(
        echo O | CHKDSK !fix! /f 
        echo(
        echo ************************
    )>> %TmpLog%
)
EndLocal
CMD /U /C Type %TmpLog% > %Log%
If Exist %TmpLog% Del %TmpLog%
echo(
cls
echo(
echo   Save your work - Reboot of your computer in two (2) minutes
echo(
echo   Enregistrer vos documents - Redemarrage du PC dans 2 minutes 
start "" %Log%
Shutdown.exe /r /t 120 /c "Enregistrer vos documents - Redemarrage du PC dans 2 minutes"
pause>nul
Exit /b

:Affich
Cls
echo(
echo               ***********************************
Echo                Please wait a while Scanning "%~1"
echo               ***********************************
Timeout /T 2 /nobreak>nul
所以,我正在寻找一个解决方案,让这个脚本在法语和英语机器上都能工作


有什么想法吗?

因为您无论如何都依赖wmic,所以您可以使用
wmic os get LOCATE,oslanguage
查找主机设置

我认为您需要对OSLanguage值执行一个conational检查。 语言代码表:

由于我总是对地区和语言的概念感到困惑,所以我也会学习
可以在此处找到区域设置代码:

因为您无论如何都依赖于wmic,所以您可以使用
wmic os get Locale,oslanguage
查找主机设置

我认为您需要对OSLanguage值执行一个conational检查。 语言代码表:

由于我总是对地区和语言的概念感到困惑,所以我也会学习
可以在此处找到区域设置代码:

您可以同时执行O和Y操作

(echo Y
echo O)|CHKDSK /f !fix!

你可以同时做O和Y

(echo Y
echo O)|CHKDSK /f !fix!

您能检查错误消息并根据它执行另一个命令吗?两种语言的提示文本是什么?很好的.bat脚本,但您真正要问的不是如何知道实用程序的“默认”语言是什么?那一定在注册表的某个地方(我在
集合
输出中没有找到任何
语言
类变量)。也许可以更狭隘地重铸这个Q来回答已经被否定的语言Q,尽管丹尼斯的想法可能是你最后的选择。祝你好运。法语中的相反选择是什么?如果
N
也适用于英语,您可能可以首先使用管道
N
,通过
for/F
捕获结果,提取括号中的部分,如
(Y/N)
,并获取适用的字母……我想@sheller如何知道实用程序的“默认”语言?我会编辑标题!您能检查错误消息并根据它执行另一个命令吗?两种语言的提示文本是什么?很好的.bat脚本,但您真正要问的不是如何知道实用程序的“默认”语言是什么?那一定在注册表的某个地方(我在
集合
输出中没有找到任何
语言
类变量)。也许可以更狭隘地重铸这个Q来回答已经被否定的语言Q,尽管丹尼斯的想法可能是你最后的选择。祝你好运。法语中的相反选择是什么?如果
N
也适用于英语,您可能可以首先使用管道
N
,通过
for/F
捕获结果,提取括号中的部分,如
(Y/N)
,并获取适用的字母……我想@sheller如何知道实用程序的“默认”语言?我会编辑标题!这是一个聪明的解决方案,谢谢!TSnake41;)这是一个聪明的解决方案,谢谢!TSnake41;)