2016-07-19 4 views
0

디스크 드라이브에 오류가 있는지 일괄 적으로 확인하고 CHKDSK 명령을 사용하여 해결할 도구를 만들고 있습니다!유틸리티의 "기본"언어를 아는 방법은 무엇입니까?

이 명령어는 프랑스 기계에서만 작동합니다 : echo O | CHKDSK !fix! /f 영어 기계에서 작동하지 않습니까?

이 명령은 영어 기계에서만 작동합니다 : echo Y | CHKDSK !fix! /f 프랑스 기계에서는 작동하지 않습니까?

이 내가 지금까지 무슨 짓을했는지 :

@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 

그래서, 내가 모두 프랑스어와 영어 기계

어떤 아이디어가이 스크립트 작업을 할 수있는 솔루션을 찾고 있어요?

+0

오류 메시지를 확인하고이를 기반으로 다른 명령을 실행할 수 있습니까? –

+0

두 언어에 대한 프롬프트 텍스트는 무엇입니까? – aschipfl

+0

.bat 스크립트가 좋지만 실제로 사용하는 언어가 유틸리티의 "기본"언어인지 아는 것이 전부입니다. 그것은 레지스트리에 있어야합니다. ('set' 결과에 변수와 같은'Language '가 없습니다.) 데니스 (Dennis)의 생각이 최후의 수단이 될 수 있지만, 기본 언어 Q에 대답하기 위해이 Q를 좁게 다시 작성하십시오. 행운을 빕니다. – shellter

답변

2

당신은

(echo Y 
echo O)|CHKDSK /f !fix! 
모두 O를하고 Y 수 있습니다
+0

이것은 영리한 해결책입니다. 감사합니다! TSnake41;) – Hackoo

2

어쨌든 wmic에 의존하고 있으므로 wmic os get locale, oslanguage을 사용하여 호스트 설정을 확인할 수 있습니다.

OSLanguage 값에 대한 조건부 검사를 구현해야한다고 생각합니다. 언어 코드의 표 : https://msdn.microsoft.com/en-us/goglobal/bb895996 난 항상 로케일과 언어 나는 또한 로케일 코드를 mentio의 개념과 혼동하고있다으로

여기에서 찾을 수 있습니다 : https://msdn.microsoft.com/en-us/goglobal/bb964664.aspx

관련 문제