こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Windows PEのCMDでバックスラッシュ入力

動作環境
ASUS Vivobook S400CA
CPU Core i5-3317U
RAM 4GB
Windows 8.1 64bit
タイ語/英語キーボード (101 Enhanced キー配列;横長の四角いEnterキーの上にバックスラッシュ表示のキーがあります)

「設定チャーム」>「PC設定の変更」>「保守と管理」>「回復」の中にある、
「PCの起動をカスタマイズする」をクリックしてコマンドプロンプトを立ち上げます。
その画面上でディレクトリー指定やコマンドを打とうとすると、何故かバックスラッシュ(\)が打てません。
どうも認識されているキー配列が違うらしく、例えば「Shift」+「2」キーを押すと「”」が打たれて、
日本語キー配列になっているようです。
このWindows PEのコマンドプロンプト(cmd)に直接バックスラッシュ(\)を入力する方法、
USキー配列に変更する有効なコマンド(usコマンドは効かないです)がありましたらお教え頂けないでしょうか?

ちなみに、通常起動したWindows 8.1上で、日本語キー配列にしてバックスラッシュ(\)を打とうにも
本来日本語キーボードの「\」キーが位置するところにはキーが存在しなくて、直接バックスラッシュ(\)が打てるキーが見当たらない状況です。
ただ、これはシステムのレジストリ設定でキー配列を”US 101 Enhancedキーボード”に変えてやると
キーボード表示通りのキーで直接バックスラッシュ(\)が打つことができるようになり、
Windows8.1のシステムツールよりコマンドプロンプト上では、USキー配列で直接バックスラッシュ(円マーク)が打てます。

他の質問&回答は一通り目を通しておりますが、解決策は見つかりませんでした。

投稿日時 - 2014-11-06 23:14:49

QNo.8816386

困ってます

質問者が選んだベストアンサー

失礼な表現、記載、誤記等ありましたら済みません。

私より、OSに堪能な方だと思います。
もし、自信がなければ参考にしないでください。

恐らく、Windowsは日本版でキーボードが101のEN-USでPC再起動時に日本語のキーボードのドライバー(レイアウト?)に設定されているのではないかと思います。
PEとしての回避策は分からないのですがWpeutil コマンドとDISM.exeにそれらしい設定があります。
ただし、環境が違うのと今のPCで無理したくないので私は一切の検証はしていません。
その辺をご理解の上自己責任で実行をお願いします。
なお、CD(カレントディレクトリ)を
C:\Windows\system32>
など、コマンドプログラムの存在場所に変更しないとコマンドがうまく動かないかもしれません。
くれぐれも自信がなければ無理しないでください。

【案その一】
Wpeutil コマンド ライン オプション
↓↓
http://technet.microsoft.com/ja-jp/library/cc765969(v=ws.10).aspx

上記リンクからEnglish-United Stateの場合

サポートされているキーボード レイアウト (名前と ID) を一覧表示します。
wpeutil ListKeyboardLayouts 0x0409

キーボードの設定English-United Stateの場合
wpeutil SetKeyboardLayout 0409:00000409


【案その二】

展開イメージのサービスと管理ツール(DISM.EXE)を使って、Hyper-Vの初期設定言語・キーボード・タイムゾーンを日本に設定する。
↓↓
http://d.hatena.ne.jp/tekk/20120331/1333158892

(参考DISM:MSサイト)
http://msdn.microsoft.com/ja-jp/library/hh825236.aspx

恐らく以下のようなコーディングになるのではないでしょうか?

上記によれば101キーボードは
C:\>dism /image:h: /Set-LayeredDriver:1

私はあまりPEを勉強していないので参考までです。
以下の記載内容が変でしたら済みません。
PEのイメージ先が階層になっていると"\"を入力する必要が生じるのでバッチ(バッチが動くかよくわかりませんが)処理するか、もしくはイメージ先階層を浅くし、\を入力しないで済むようにするしかないと思います。

以上参考まで

投稿日時 - 2014-11-07 19:51:31

お礼

お陰様で解決しました。
有難うございました。

Wpeutil コマンド を使って、キーボードそのものがタイ語(ロケールID:041e)ってこともあって、

wpeutil SetKeyboardLayout 041e:0000041e
を実行させると、\が入力できるようになりました。

ちなみに、他の言語に変更しても\マークが打てるキーは見当たらなくダメでした。

m(_ _)m

投稿日時 - 2014-11-07 21:58:02

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(4)

ANo.3

コマンドラインではshift-jisに固定されてしまっている状態です

「chcp」コマンドで変更可能ですが 使用についての知識は皆無レベルですので
御自身で調べて活用して頂ければと思います

アクセサリからコマンドプロンプトを機動した場合と
プログラム名から「cmd.exe」を起動した場合で違うものが起動する?
コマンドプロンプト上のみ? Windows環境に影響? プログラムへの影響は? その辺りは勉強していないので解らない知識レベルです

標準コード(日本語Sift-jis)は 「chcp 932」です
多言語「chcp 65001」に変更する事で とりあえず\の入力が可能です

Windowsサーバーの関連情報として多国語は850と記載されていますが ウインドウサイズとフォントサイズが極小化してしまう(\入力可)
http://technet.microsoft.com/ja-jp/library/cc733037%28v=ws.10%29.aspx

投稿日時 - 2014-11-07 13:34:32

補足

ご返答頂き有難うございます。

言語コードを変更可能な「chcp」というコマンドがあったのですね。
大変ご有益な情報を有難うございます。

帰宅次第、試したいと思います。
またご報告させて頂きます。

取り急ぎ

投稿日時 - 2014-11-07 18:09:06

お礼

ts0472様

早速、chcpコマンドを試してみました。
結果をいうと、ダメでした。残念。

私は少し勘違いをしていたようで、
chcpコマンドは、
例えば画面上に表示させた文字が文字化けなどで正しく表示されない場合、
その言語に合った文字コードに変更させてあげることによって正しく表示される、
というようなものでした。

でも、Uncle_John様のご回答で無事解決しました。
有難うございました。

投稿日時 - 2014-11-07 22:07:08

ANo.2

失礼な表現、記載、誤記等ありましたら済みません。

結論から言うと半角の"\"でなくても半角"¥"で入力して処理して構いません。

便宜上、私の回答サイトでは文字化けするので半角英文字のバックスラッシュ、¥は全角で表示し説明します。

半角のバックスラッシュ”\”は半角の”¥”と文字コードは同じです。
unicodeとか言う以前にPCは元々00~FFの256文字でバイト単位の文字の範囲で処理されていました。
その限られた文字数にキーボードから入力されるコードが集約されていてその時代に日本語などに合わせるために大型コンピュータなど一番使われない文字コード"&H5C"に日本では"¥"を当てました。
ただし、これはモニタ上の表示の問題です。
文字コード(バイトデータ)は変わらないので半角"¥"をUSキーボードの半角の"\"と扱って構いません。

日本では(実際は"¥"は半角)
C:¥Windows¥Program Files¥***

US等では(実際は"\"は半角)
C:\Windows\Program Files\***

とはPCから見ればデータは同じになります。

これは文字入力が出来ないのではなく、表示上半角のバックスラッシュを半角の¥にOSが表示を変えているにすぎません。
106の日本語キーボード、101,102のキーボード共に発生する問題で日本語を使う以上避けられません。

投稿日時 - 2014-11-07 10:01:32

補足

Uncle_John様、
早速のご回答ありがとうございます。

恐れ入ります、質問内容が分かりづらかったかもしれません。

ts0472様へご返答いたしました内容をこぴぺーしてお答えすることをお許しくださいm(_ _)m

本題の前に質問内容に漏れがありましたのでこちらで補足を付け加えさせて頂きます(失礼します)。私はWindows 8.1 ”日本語版”を使用しております。

日本語環境上では”円マーク”に置き換えられていて、バックスラッシュと円マークの文字コードが同じであることはすでに承知しており、問題ではありません。
実際、質問文にご記述しました通り、Windows8.1上では、バックスラッシュ(または、円マーク)が入力できる状態です。レジストリ設定(システムソフトウェア面)を、キーボード(ハードウェア面)のキー配列と同じになるように”US101キーボード”に変更したためです。

困っていることは、PCトラブルシューティングでコマンドプロンプトを実行して(おそらくWindows PE上で動いていて、Windows8.1 OSシステムと独立しているんですかね?)、バックスラッシ(または円マーク)を入力しようとする場合です。
勝手に実装キーボード(ハード側)とは違う”日本語キー配列(ソフト側)”に換えられ、バックスラッシュ(または、円マーク)が入力できるキーが見当たらないのです。

この点について何かご存知でしたら、ご教授お願い申し上げます。

投稿日時 - 2014-11-07 10:34:43

ANo.1

最近はほとんど触っていないのですが

日本語環境では\が¥に置き換えられています(同じ機能)
日本語文字コードにバックスラッシュが存在しなくなった
http://ja.wikipedia.org/wiki/Unicode#.E6.97.A5.E6.9C.AC.E8.AA.9E.E7.92.B0.E5.A2.83.E3.81.A7.E3.81.AEUnicode.E3.81.AE.E8.AB.B8.E5.95.8F.E9.A1.8C
中ほど「日本語環境でのUnicodeの諸問題」

多言語オプションを追加すれば コマンド上から「us」で切り替えができるのかな?
言語オプションは未導入なので
他国環境で起動させて使うとか 他も全て他国語表示でしょうが

私のキーボードに「\」があり この画面では入力可能ですが コマンドライン上では「¥」になります メモ帳のフォント変更で\を貼り付けても¥に変わる
日本語Winsowsの問題? LinuxOSでは入力可能

投稿日時 - 2014-11-07 02:18:33

補足

ts0472様、
早速のご回答ありがとうございます。

恐れ入ります、質問内容が分かりづらかったかもしれません。

本題の前に質問内容に漏れがありましたのでこちらで補足を付け加えさせて頂きます(失礼します)。私はWindows 8.1 ”日本語版”を使用しております。

日本語環境上では”円マーク”に置き換えられていて、バックスラッシュと円マークの文字コードが同じであることはすでに承知しており、問題ではありません。
実際、質問文にご記述しました通り、Windows8.1上では、バックスラッシュ(または、円マーク)が入力できる状態です。レジストリ設定(システムソフトウェア面)を、キーボード(ハードウェア面)のキー配列と同じになるように”US101キーボード”に変更したためです。

困っていることは、PCトラブルシューティングでコマンドプロンプトを実行して(おそらくWindows PE上で動いていて、Windows8.1 OSシステムと独立しているんですかね?)、バックスラッシ(または円マーク)を入力しようとする場合です。
勝手に実装キーボード(ハード側)とは違う”日本語キー配列(ソフト側)”に換えられ、バックスラッシュ(または、円マーク)が入力できるキーが見当たらないのです。

この点について何かご存知でしたら、ご教授お願い申し上げます。

投稿日時 - 2014-11-07 10:30:35

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-