【Jenkins】Jenkinsで日本語バッチを使いたい!!!!

こんにちは、ここあです。今回、Jenkinsで名前に日本語を含むバッチファイルを使いたかったのになかなかうまくできなかったので試してみた解決策をば

環境

  • Jenkins 2.235.1
  • Windows 10

試したこと

batコマンド実行前に文字コード設定

結論からいうとこの方法はうまくいきませんでした。batコマンド実行前にchcp 65001にしてUTF-8にするいうものです。

Stringにファイル名を読んでエンコーディング変換

これもうまくいきませんでした。 ↓ ↓ ↓ ↓みたいにしたんですけど、JavaのStringはUTF-16なのでいくらエンコードを変えようとStringにぶち込めばみんな一緒や

String filename = new ("呼び出したいbat".getBytes( StandardCharsets.UTF_8),  StandardCharsets.UTF_8)

Jenkins実行時の文字コードを変更

次に試したのは、JekninsのファイルエンコーディングとかをUTF-8に変えてみる方法です。Windowsの場合は環境変数に次の値をセットすればファイルエンコーディングを変えることができます。

名前
JAVA_TOOL_OPTIONS -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8

これもうまくいきませんでした!!!!!!!!

ファイルに書き出してみた

ここまでやってもJenkinsコンソール上で文字化けしているので、どこがおかしいんだ????と思いなんとなくwriteFileを使うとうまく書き出せている。。。。。

ここから導き出せる結論は、「Jenkinsのbatコマンドは日本語に対応していない」のではないのだろうか???

てことで本命です。

writeFile encoding: 'MS932', file: 'mkd.bat', text: 'mkdir C:\おおおおおお'
bat "mkd.bat"

これで正常に動いた!!!!!!

ちなみに今回はエンコーディングを指定してwriteFileしていますが、指定しない場合はシステムデフォルトで書き出されるので、Jenkinsの文字コードをUTF8に変更している場合には、writeFileで書き出すときにその内容にchcp 65001 \r\nを追記してあげると正常に動きます。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です