min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

Windows10 バッチでnkf(文字コード変換)UTF-8 → Shift-JIS

Windows10でUTF-8 → Shift-JISへ文字コード変換したい

コマンドプロンプトからワンライナーで変換したい。

・インストール直後の素のWindows10で動かしたい。

フリーソフトとか使わない。

nkf.exeのインストールもしない。

・wslも使わない。

 

できた。コマンドプロンプトにこれを貼り付けるだけ。

powershell -NoProfile -ExecutionPolicy Unrestricted -Command "& { get-content -Encoding UTF8 入力ファイル名 | Set-Content 出力ファイル名}"

 

バッチファイルにする場合はこれ(引数に対象ファイルを指定する)

powershell -NoProfile -ExecutionPolicy Unrestricted -Command "& { get-content -Encoding UTF8 .\%~1 | Set-Content %~dp1%OUTNAME%}"

 

やってみる。

 

test.csvUTF-8。 

f:id:min117:20191115184458p:plain

 

これをバッチファイルに食わせると

f:id:min117:20191115183925p:plain

f:id:min117:20191115184626p:plain

 

一瞬でUTF-8からShift-JISに変換される。 

f:id:min117:20191115184815p:plain

最高。

 

cmd> notepad my_nkf.bat
echo -------------
REM echo 実行時刻:%date% %time%
echo USER:%username%
echo 端末:%computername%
echo HOME:%homedrive%%homepath%
echo DOM:%userdomain%
echo.

echo 年:%wk_year%
echo 月:%wk_mont%
echo 日:%wk_day%
echo 時:%wk_time%
echo 計:%wk_date%_%wk_time%
echo -------------
echo.

cls

echo. 処理概要
ECHO. --------------------------------------------------------
echo   UTF-8 から SJISへ 変換します
ECHO. --------------------------------------------------------
echo.

 

set OUTNAME=%~n1_SJIS_%YYYYMMDD%_%wk_time%%~x1

REM powershell -NoProfile -ExecutionPolicy Unrestricted -Command "& { get-content -Encoding UTF8 .\%~1 | Set-Content .\%~n1_sjis_%YYYYMMDD%_%wk_time%%~x1 }"
powershell -NoProfile -ExecutionPolicy Unrestricted -Command "& { get-content -Encoding UTF8 .\%~1 | Set-Content %~dp1%OUTNAME%}"


@echo 出力ファイル名:
@echo %~dp1
@echo %OUTNAME%

 

min117.hatenablog.com