バッチファイルでscpコマンド実行後に文字化けする場合の対処法

バッチファイルでscpコマンド実行後に文字化けする場合の対処法

※アフィリエイト広告を含む場合があります

バッチファイルでscpコマンドを実行すると、それ以降のコマンドは日本語が文字化けして処理されます。

この記事では、scpコマンド実行後に日本語が文字化けする場合の対処法をご紹介します。

 

結論を言うと、scpコマンド実行後に「chcp 932 > nul」で文字コードを shift-jis に変更すると文字化けしなくなります。

 

 

スポンサーリンク

文字化けするバッチファイルの例

文字化けするバッチファイルの例

文字化けするバッチファイルの例として、以下を作成しました。

scpコマンド実行後、処理完了メッセージを表示します。

 

@echo off
set BACKUP=..backup

cd %~dp0
mkdir %BACKUP%

scp -i .keyid_rsa -rp user@192.168.10.10:/var/log/app/* %BACKUP%

echo バックアップ取得が完了しました。

pause

 

実行してみると、処理完了メッセージが文字化けして出力されます。

 

メッセージが文字化けしたコマンドプロンプト

 

スポンサーリンク

文字化けの対処法

文字化けの対処法

scpコマンド実行後、「chcp 932 > nul」で文字コードを shift-jis に変更します。

 

@echo off
set BACKUP=..backup

cd %~dp0
mkdir %BACKUP%

scp -i .keyid_rsa -rp user@192.168.10.10:/var/log/app/* %BACKUP%

chcp 932 > nul

echo バックアップ取得が完了しました。

pause

 

文字化けすることなく正常に日本語を出力できるようになりました。

 

「バックアップ取得が完了しました」と表示されたコマンドプロンプト

 

スポンサーリンク

補足:chcpコマンドについて解説

chcpコマンドについて解説

ここでは文字コードの変更に使用したchcpコマンドについて解説します。

コマンドの使用方法

chcpコマンドは、文字コードを変更するコマンドです。

書式は以下の通りです。

 

chcp [コードページ番号]

 

コードページ番号を省略すると、現在のコードページ番号が表示されます。

 

よく使うコードページ番号は以下の通りです。

 

コードページ番号 文字コード
932 shift-jis
65001 UTF-8

 

その他のコードページ番号は、以下の Microsoft のページにて確認できます。

コードページ識別子 – Win32 apps | Microsoft Docs

 

「現在のコード ページ」の出力を省略する

chcpコマンドを実行すると、以下のように「現在のコード ページ」が表示されます。

「現在のコードページ: 932」と表示されたコマンドプロンプト

 

chcpコマンドの後ろに「> nul」をつけると、「現在のコード ページ」の出力を省略できます。

 

chcp 932 > nul

 

スポンサーリンク

まとめ:文字化けはchcpコマンドで対処しよう

文字化けはchcpコマンドで対処しよう

バッチファイルでscpコマンド実行後に、日本語が文字化けする場合の対処法を解説しました。

chcpコマンドで文字コードを明示的に変更することで文字化けに対処できます。

文字化けして困った時、試してみてください。

 

コメント