Changing codepage simplified
This is an automated version of the codepage changing instructions in snippet 414 ( http://codesnippets.joyent.com/posts/show/414 ). Be sure to read the comments on that snippet for the potential hazards of changing codepage settings.
Save the code as a .bat file and run without parameters for usage instructions.
Save the code as a .bat file and run without parameters for usage instructions.
@echo off ::GOTOs are considered harmful, so I'm a mean, dirty killer ;) :: Seriously though, I should've used "CALL" and "GOTO :EOF" REM Read switches if X%1 == X-view ( goto ViewCP ) if X%1 == X-edit ( goto EditCP ) REM Catchall: show switch options goto Usage ::::::: :ViewCP REM echo active codepage chcp REM echo default codepage: For /F "Tokens=1,2,3 Delims= " %%A In ('reg query HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage /v OEMCP ^|findstr OEMCP ') do @echo Current default codepage: %%C goto Exit ::::::: :EditCP REM Check that a codepage value has been provided if X%2 == X ( goto NoParam ) ELSE ( goto Param ) :Param echo Changing active and default codepages to: %2 echo (usually requires admin rights) echo. chcp %2 >nul reg add HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage /v OEMCP /t REG_SZ /d %2 /f >nul goto ViewCP goto Exit :NoParam echo ERROR: You must specify a codepage value, e.g. 1252 when using the -edit switch goto Exit :::::: :Usage echo. echo CodePageChanger Usage echo. echo %0 -view echo %0 -edit CODEPAGENUMBER echo. echo (English WinXP default: 850, WinLatin1: 1252) echo. :Exit