質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

0回答

556閲覧

scpコマンドで日本語フォルダ内からlinuxサーバーに送信したいのですが、日本語フォルダ名部分が文字化けしてしまいscpコマンドが実行できません。

waver_night

総合スコア1

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2023/09/03 04:27

編集2023/09/03 05:02

実現したいこと

windowsサーバーにて、scpコマンドで日本語フォルダ内のファイルをlinuxサーバーに送信したいのですが、送信元のファイルパスの日本語部分が文字化けしてしまい、scpコマンドが実行できません。

前提

C#.net上でpowershellを使用して、scpファイル転送をしたいです。
(windowsサーバー to linuxサーバー)
下記scpコマンドをC#プログラムおよび、powershellで直接実行すると、日本語部分が文字化けしている

該当のソースコード

scp -i [ssh認証キーのフルパス] [日本語フォルダを含む送信ファイルのフルパス] [ユーザー名]@[サーバーインスタンス名]:[送信先フォルダ]

発生している問題・エラーメッセージ

※●●●●の部分は伏字にしておりますが実際には文字化けしております。

scp : C:/test_●●●●_/testdir/test.txt: No such file or directory 発生場所 [実行したpowershellファイルのパス]:3 文字:1 + scp -i [ssh認証キー] C:/test_ ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (C:/test_●●●●...le or directory:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError

試したこと

・powershell、cmd両方で実行しましたが、どちらでも同様に文字化けを確認しました。

・windowsでsjis,utf-8,utf-8(bom付),ansiでps1ファイルで保存して実行しましたが、
解消できませんでした。

・日本語を含まないフォルダに変更して、scpコマンドでファイル送信したところ、
C#内のpowershellコマンドおよび、ps1の実行で問題なくファイル転送できました。

補足情報(FW/ツールのバージョンなど)

・scpコマンドを実行しようとしているサーバーには私が担当しているもの以外のプログラムも複数動いているため、windowsサーバー側の設定を変えずに、scpコマンドを実行したいと考えております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2023/09/03 09:39

scpは C:\Windows\System32\OpenSSH\scp.exe でしょうか?複数あって、うまく行く場合と行かない場合で違う物が動いているとかは無いでしょうか?(これはスクリプトにscpを絶対パスで書けばわかりますね)。 また、Powershellはver5系とver7系でかなり仕様が違うので、バージョンも書いた方が良いと思います。プログラムが間違っている可能性もあるのでpowershellを起動するC#のコードも。 powershellとCMDのスクリプトも少なくとも1行目からscpの行までは載せた方が良いでしょうね。
KOZ6.0

2023/09/03 13:48

ps1 ファイルは、DBCS(ascii + sjis) か BOM 付き UTF-8 であれば問題ありません。 Windows10 に含まれる scp.exe の日本語対応が怪しいようです。 「Windows 10 October 2018 Update(1809)を適用すると、scpによるファイル転送用のPowerShellスクリプトが動作しない。」 https://answers.microsoft.com/ja-jp/windows/forum/windows_10-update/windows-10-october-2018/d779fb12-1f08-40ed-8a22-47a990839636 Git for Windows に付属の scp.exe をコマンドプロンプトから動かすとうまくいったという話があります。 https://zenn.dev/kemokemo/scraps/8ae627a3dc92db 環境が無いので未確認です。
bsdfan

2023/09/04 06:30

ファイル名部分に日本語がなくて、途中のディレクトリだけの問題なら、cd してから scp するという逃げの手段も使えるかもしれないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問