・リダイレクトでファイル書き込みすると
Unicode(UTF-16)になってしまう。
echo ほげ > hoge.txt
・リダイレクトの代わりに,
パイプ(|)と out-file コマンドで
文字コードを指定してファイル出力できる。
echo ほげ | out-file -encoding utf8 hoge.txt

・リダイレクトでファイル書き込みすると
Unicode(UTF-16)になってしまう。
echo ほげ > hoge.txt
・リダイレクトの代わりに,
パイプ(|)と out-file コマンドで
文字コードを指定してファイル出力できる。
echo ほげ | out-file -encoding utf8 hoge.txt
豆知識: "Unicode" と "UTF-16" の違い
http://yanok.net/2016/03/utf-1...
・昔の文書では,"Unicode" は16ビット固定長の符号化方式(16ビット版ASCII)を指す
・現在 "Unicode" は16ビット固定長ではなく,サロゲートペア機構などをもつ UTF-16 を指す (PowerShellのデフォルト)
echoコマンドとリダイレクトを使い,
文字を表示してファイルに書き込む:
echo ほげ > hoge.txt
・「ほげ」という文字列がファイルに書き込まれる。
・ただし,文字コードはSJISやUTF-8ではなく
BOM付きUnicode(UTF-16)で出力される。
Windows:
#コマンドプロンプト・BATを使いこなす
#WSH・JScriptでバッチ作成
#PowerShell入門
#Windowsパソコンのメンテナンス
Linux:
#linuxの基礎を勉強
エンジニア論:
#バッチ職人になろう
ファイル内検索結果を
リダイレクトでファイル出力する方法:
select-string "検索キーワード" *.txt > 検索結果.txt
・コマンドプロンプトと同じく
> でリダイレクト可能。
※しかしこのままだと,出力結果に
妙な位置で改行が混入する。
select-string -encoding default "検索キーワード" *.txt
・「-encoding default」というオプションを付ければSJISでキーワード検索。
※「オプションを付けない」という意味でのデフォルト検索はUTF8なので,「デフォルト」の意味が紛らわしい
select-string コマンドの使い方:
select-string "検索キーワード" *.txt
・フォルダ内の全テキストファイル内から
検索キーワードをUTF8で検出。
・ファイル名と行番号が左端に表示され
発見された行は,適宜改行されて画面表示される。
Windows で PowerShell を
簡単に起動する方法。
エクスプローラー上で,
「Shiftキーを押しながら
フォルダを右クリック」
すれば,
そのフォルダをカレントディレクトリとして
パワーシェルのダイアログを起動できる。
ファイル内の文字列を検索
▶コマンドプロンプトでは…
findstr /n /s "社外秘" *.txt > 社外秘リスト.txt
文字コードはSJISのみ。
▶PowerShellでは…
select-string "社外秘" *.txt | % { $_.Line } | Out-File -Encoding utf8 .\社外秘リスト.txt
UTF-8も検索可能!
Shift-JISではない,
別の文字コード(UTF-8など)で書かれた
テキストファイルの内容を
全行読み込んで表示するには:
https://k-side.hatenablog.jp/e...
get-content -encoding utf8 ファイル名.txt
get-contentには
catというエイリアスもある。