[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 10/24 19:35 / Filesize : 263 KB / Number-of Response : 1007
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【最強CUI】PowerShell -Part 1



1 名前:デフォルトの名無しさん [2013/09/12(木) 18:35:04.72 .net]
スレなかったので立てました

129 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 20:20:34.62 .net]
成否を返す関数との相性は悪いよな
あと複数結果返す関数でいえば結果が一個の時と複数の時でタイプが変わるのが気持ち悪かったわ
$x = ls とかやったときにファイルが複数あると $x.GetType() => Array だけど
一個しか無いと $x.GetType() => DirectoryInfo ときたもんだ

@()で呼び出しゃいいんだけど

130 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 20:21:58.90 .net]
あくまでシェルであって言語としてはかなり歪だと思う

131 名前:デフォルトの名無しさん [2014/03/02(日) 20:29:09.68 .net]
>>129
そりゃ旧来のシェルのほとんどは単なる文字列操作にすぎないからね。

132 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 20:32:39.91 .net]
いや、言語としてはいいと思う。
が、シェルだと考えると、
.NETやコマンドレットだけじゃなく、外のコマンド・プログラムをたくさん使うことになるわけなので、
それらの戻りを全部把握して処理しないといけないのは、結構大変なことだと思う。

嵌って、「パイプラインすげー」と思う人、「なんだこれ、使えねーw」と思う人それぞれ。

133 名前:デフォルトの名無しさん [2014/03/02(日) 20:33:12.58 .net]
>>128
初めは俺も思った。
なれたらこの方が便利だけど。
returnの役割は、スコープ終了と、リターンコードを返すための利用。てな感じ
なんだろな。
結果とリターンコード両方が取れるのは、俺にとっては便利。

134 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 22:50:50.92 .net]
>>120
いや俺が>>116で言ったのは、文字列だけ書いたらそれが画面に表示されるってのはPowerShellくらいだから(ないことはないだろうけど)
他の言語の感覚で文字列だけ書いてたら出力に混じって嫌だって例文は違和感があるって話

printfの感覚で echo hoge って書いたら出力に混じるから困惑したってことなら分かるけどって意味

だから出力が混じって困る例なら、たとえばC#で戻り値があることを意識してないメソッドを呼ぶような例がいいんじゃないか、ってんで>>116で書いた
確かに最終版はともかくデバッグ中は文字列埋め込むこともあるかもしれないけどね

135 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 23:05:47.11 .net]
なんか出力と戻り値を取り違えてる奴がいるからややこしくなったんだろな。
あと例もよくなかった。
単に戻り値を返す適当な処理を書いとけば出力がどうのって話にならなかったんだと思う。

136 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 23:31:47.97 .net]
本買って読めとまでは言わんけど、man about_Returnにすら書いてあることくらいは読もうぜってことで

137 名前:デフォルトの名無しさん mailto:sage [2014/03/03(月) 22:10:36.75 .net]
【メモ】
write-output write-hostの違い。
ググって出てくるのは、色が付けられるとか、空行がどうのとか、そういうことばかり。

write-output "foo"
echo "foo"
"foo"
は全部同じで、パイプラインに出力。

write-host "bar" | gm
(エラー)
つまり、write-hostは、コンソールへの直接出力(パイプライン経由ではない)。



138 名前:デフォルトの名無しさん mailto:sage [2014/03/03(月) 22:55:59.13 .net]
コンソールっていうかホストプログラム全般な
画面へ出力することを前提としているから色を指定できる
あとSnover泣いちゃうからまずヘルプ読んであげて

139 名前:デフォルトの名無しさん mailto:sage [2014/03/06(木) 18:15:30.08 .net]
win8.1でヘルプが入ってなかったから、update-helpしたわけだが、英語版しか入らなかった('A`)

140 名前:デフォルトの名無しさん [2014/03/06(木) 23:40:23.45 .net]
英語を勉強するチャンス!

141 名前:デフォルトの名無しさん mailto:sage [2014/03/06(木) 23:44:05.55 .net]
>>138
これは実績もあるイルカに期待するしかないかw

142 名前:デフォルトの名無しさん mailto:sage [2014/03/07(金) 19:07:10.78 .net]
>>138
「Windows PowerShell 実践システム管理ガイド」
2009初版、という本によると、

C:\Windows\System32\WindowsPowerShell\v1.0 に、
ja-JP というフォルダを作って、そこに
en-US フォルダにあるすべてのファイルをコピーする
と書いてある

漏れはWin8だけど、ja-JP フォルダの中には、
すでに数個のファイルが存在している
どうすべきかな?誰か試しにやってみて

ja-JP フォルダの中の default.helpには、
オンラインヘルプのアドレスが書いてある

143 名前:デフォルトの名無しさん mailto:sage [2014/03/08(土) 10:57:34.76 .net]
7だと最初から入ってたよね。
だから、2008R2でも特になにもしなくてもリファレンスは使えてた。
2012R2だと、どうなんだろ。
サーバの場合、インターネットに直接繋げないケースも多いわけで。
WSUSではたぶん面倒見てくれないから、SCCMとか使うのかね。

144 名前:141 [2014/03/08(土) 15:49:20.02 .net]
漏れはWin8だけど、
C:\Windows\System32\WindowsPowerShell\v1.0 中の、
en-US フォルダの中には、powershell.exe.mui
というファイルが一つあるだけ

これを、ja-JP フォルダにコピーすれば良いのか?
ただし、ja-JPにもすでに、同名のファイルがある

同名のファイルだが、ファイルのサイズは違う
前者は11KBで、後者は9KB

このファイルは何だろう?
ヘルプファイルをダウンロードするプログラムか何か?

145 名前:141 mailto:sage [2014/03/08(土) 16:26:47.96 .net]
powershell と同じフォルダにある、
デバッグ用のpowershell_ise の方が使いやすい

右のコマンド一覧から、
コマンド + オプションを選んで実行できる

146 名前:デフォルトの名無しさん mailto:sage [2014/03/08(土) 16:30:57.24 .net]
最近のISEはコマンド一覧とかついてるんか

147 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 20:18:38.26 ID:LfplOf8O.net]
真面目な話、
・Windows Server のユーザーである
・管理系のスクリプトを作りたい
・先の見えてる .bat や .vbs よりかは将来性がある
しかし、これらを全て満たす状況じゃないと「憶えても無駄」な嫌な匂いがプンプンしてくる、という感想を抱く。
PowerShell 推しな記事がこぞって 4〜5年前だったりするし。記事が古いから役に立たないし。

でもこれからの Windows Server 管理(特に MS 製サーバーアプリ)には必須、みたいな匂いもプンプンしてくる。
管理者系の人間が嫌々使ってる、というイメージなんだけど、実際はどうなの?



148 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 22:08:56.67 ID:Fzs/8hFo.net]
そんなところじゃないの?
開発案件だったらわざわざこれを選ぶ人はいないだろうし

149 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 22:54:04.60 ID:3UAaFn0/.net]
batは低機能過ぎるし、vbsは糞言語のうえシェルじゃないし。

150 名前:146 mailto:sage [2014/03/27(木) 18:33:56.87 ID:w9DVguFT.net]
>>147
だよねぇ…
泣きながら学ぶことにするよ…

>>148
ええと、シェルとしての PowerShell については何も言ってないのだが…。

VBScript は言語としてはそんなに悪い言語じゃないと思ってる。
ちょっと凝ったことをやろうとすると COMオブジェクトに頼るしかなくて、おもくそ環境依存、意地になって自前実装するとウルトラ遅くなる駄目な子、というとこなら同意。

シグナルのハンドリングというところまで極めてはいないのでそこは了承願いたい。
エラーを raise できるのは知ってるが、はて SIGKIL とか SIGHUP とかを外部から受け取った時はどうだったっけ、な感じなんで。

151 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 22:54:36.60 ID:5oUWcvgH.net]
ム板で言ってもしょうがないが、そもそも開発案件で候補に挙がるような言語じゃないだろう
シェルスクリプト/ツールとして使う分には普通に便利に使ってるけど

152 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 07:01:13.94 ID:4uJ25Yxc.net]
これがそうでもない。
プロト的につかったり
メニュー画面がらみ案件に使ったり
相当使える。

153 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 07:30:21.97 ID:Ym7n0+3V.net]
そんなのVSでポトペタの方が早いじゃないですかやだー

154 名前:デフォルトの名無しさん [2014/03/30(日) 12:03:12.26 ID:1u4x9v7e.net]
>>152
画面はVSでポトペタをそのまま使える
PowerShellでホストする。
めちゃくちゃ簡単になる。

155 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 13:20:00.33 ID:RDnNVplQ.net]
>>152
それ、VSの立場が理解できてないんだとおもうぞ

156 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 13:40:34.98 ID:o9ag65ui.net]
納品用のPCに泣きながらVSをインストールする>>152を目撃したという未確認情報が入りました

157 名前:デフォルトの名無しさん [2014/03/30(日) 15:51:48.19 ID:RDnNVplQ.net]
>>152
たとえばWPFなら、VSで作る画面(XAML)をC#で使えるよね
これはC#用に作っているわけじゃなく、XAMLとして作られている。
独立したものなんです。これがコードビハインドという考え方。

だから同じものをVBでも使えるよね。
同じようにPowerShellでも使えるんです。
イメージわかってくれたかな?

知っているかもしれないけど、ついでなんで、
バインドという考え有るよね。
これを組み合わせるとJavaなどと比べて何倍も高い開発効率を
生めるのが、現在の.NETの世界となってきている。
なんで、Javaやめて戻ってきた次第。



158 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 00:31:05.84 ID:3P7ATE0k.net]
>>153
すいませんが、アホの俺にもわかるように教えて下さい。
Powershellでホストするって?

159 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 00:37:28.56 ID:3P7ATE0k.net]
d.hatena.ne.jp/ladybug/20111204/p1
こういうことですか?

160 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 00:51:18.63 ID:HPrdAsyG.net]
xamlでUI作ったらPowerShellから読み込んでShowDialog()で呼び出すってだけじゃ?

161 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 06:31:38.92 ID:nFhjZp0H.net]
$arr=ls
$arr.Name
$arr.fullname

Nameでファイル名、fullnameでフルパスを取り出すのは便利
ただし、入力補完ではこれらの候補が出ない

162 名前:デフォルトの名無しさん [2014/03/31(月) 09:16:41.02 ID:ObzhI129.net]
>>160
そもそも ls.Nameってあったけ?

163 名前:デフォルトの名無しさん [2014/03/31(月) 13:34:02.17 ID:FswzEzL9.net]
>>160
ls -Nameの間違いかな?

$arr=ls
$arr -Name
としたいということだとすると、無理じゃないかな
new-alias arr ls
arr -Name
ならいけるけど

164 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 13:42:03.34 ID:Z/deP/O+.net]
>>156
データバインドって、Angularのやってるアレ?
スクリプトならnashornで書く方が速いんじゃないの

165 名前:デフォルトの名無しさん [2014/03/31(月) 13:56:19.72 ID:FswzEzL9.net]
>>163
そういうのは好きなのえらべばいいんじゃないかな。

166 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 14:04:39.44 ID:Z/deP/O+.net]
いきなり他の言語を使えって言われても、コンテキストを思い出せないんだよ
Excel VBAがExcel JScriptに置き換わったら、いよいよだと思うね

167 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 18:14:36.06 ID:fvBhjMHZ.net]
powershell の意味不明な文法はどこ由来なんだろう



168 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 19:19:51.23 ID:HPrdAsyG.net]
>>161-162
Member Enumerationといって、V3からコレクションの各要素のメンバーにアクセスする機能が追加されたんだよ
ttp://blogs.msdn.com/b/powershell/archive/2012/06/14/new-v3-language-features.aspx

169 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 19:45:07.51 ID:2sfUKmxl.net]
いちいちselectしなくても良くなったってことか
それは助かる

170 名前:デフォルトの名無しさん [2014/03/31(月) 21:39:20.66 ID:FlSL2ost.net]
>>167
それなら、書き方が違うと思うぞ
$arr=ls
$arr.Name
はできないでしょ

$arr=(ls)
$arr.Name
なら可能だけど、
それでも
入力補完はしてくれないね。

171 名前:デフォルトの名無しさん mailto:sage [2014/03/31(月) 23:13:53.29 ID:HPrdAsyG.net]
>>169
いやどちらでも通るよ?
入力補完はそりゃ利かないだろうけど

172 名前:デフォルトの名無しさん [2014/04/01(火) 00:13:09.13 ID:n+62zDt+.net]
>>170
ごめん、通った

173 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 21:14:46.98 ID:XUx13Ibi.net]
>>167
意外だ。3まではできなかったのか。
powershellの()とか$()ってオブジェクトがそのまま却ってくると理解してて、その書き方が当たり前と思ってたわ。

174 名前:160 mailto:sage [2014/04/02(水) 02:37:09.60 ID:iqksnACc.net]
$arr=ls
$arr.Name
$arr.DirectoryName
$arr.FullName

Nameでファイル名、DirectoryNameでフォルダまでのフルパス、
FullNameで、ファイル名付きフルパスを取り出す

入力補完は、
$arr. で配列のメンバが、
$arr[0]. で配列中のファイル情報のメンバが表示される

175 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 03:15:22.54 ID:DfhRYDJb.net]
ps初心者におすすめの書籍やサイトありませんか?

176 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 10:47:02.26 ID:rXi4eJBj.net]
powershell in actionのセカンドエディションが何故出ないんだろう・・・
英語読めんから、日本語版でてもらいたいんだけど

177 名前:デフォルトの名無しさん [2014/04/02(水) 15:40:49.84 ID:mZJZP6QO.net]
>>174
やはりTechNetじゃないかい



178 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 17:16:43.20 ID:m0GxFAWI.net]
powershellって、本は少ないよな
というか、読んだことない
日本語の情報も少ない
powershellはバージョンアップで結構大きく変わってるから、ネットの情報も古いのはあまり役に立たない

179 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 17:36:21.91 ID:wdgZMuKf.net]
選ばれし者のみが使うものだから安っぽい一般書籍で下々の者の目に触れさせてはならぬのだ

180 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 19 ]
[ここ壊れてます]

181 名前::56:12.51 ID:Y0IuL1ul.net mailto: >>177
ないことはないが
wshの本だって読んだことないだろ?
[]
[ここ壊れてます]

182 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 20:35:42.75 ID:OMqTUtFb.net]
歯を磨くのに歯ブラシの本なんか読まないって奴だな

183 名前:デフォルトの名無しさん [2014/04/02(水) 21:07:06.51 ID:y1aMAgcN.net]
そういえば、Excelの本も読んだことないな

184 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 21:53:15.82 ID:m0GxFAWI.net]
bashの本は結構ある

185 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 02:45:55.99 ID:Ft/oIZi2.net]
>>174
「Windows PowerShell 実践システム管理ガイド」2009初版
この本は一通り、環境設定や文法などを説明しているが、
サーバ管理者じゃなければ、あまり読む所がない

@IT 執筆者は山田 祥寛(よしひろ)
ttp://www.atmarkit.co.jp/fwin2k/win2ktips/1069psffolder/psffolder.html

HIRO's.NET
ttp://hiros-dot.net/PowerShell/index.htm

MS TechNet スクリプトセンター

186 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 15:09:33.58 ID:Ft/oIZi2.net]
ファイル名に入っているすべての空白を、
アンダーバーに置換して、
置換したときのみ、ファイル名を変更する

#複数か所を置換。日本語もOK
$a=$str.Replace(' ','_')

#True, False
#もし、置換されていれば
if(! $a.Equals($str)){ren}

Replaceが置換できたかどうかが分からないため、
Equalsで置換前後の文字列を比べているんですが、これでいい?

Replaceが置換した文字数でも返せば、便利なのに

187 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 22:15:18.50 ID:PIEAAVmi.net]
これが最近になってerrorになるんだが。エラーメッセージは今手元に処理系がないから晒せない。すまぬ。

$ie = new-object -com InternetExplorer.Application



188 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 03:15:36.79 ID:Y0zkgPF2.net]
$ie = new-object -com InternetExplorer.Application
Win8で、動くよ
ただし、このままでは見えないから、
$ie.Visible=$true で見える

それから、$ie.Quit() で終了して、
Remove-Variable ie で変数を完全に削除する

189 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 03:25:58.26 ID:wR4zjFJC.net]
>>186
あ、動かなかった環境はwin7

190 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 03:26:28.98 ID:wR4zjFJC.net]
>>186
ieのバージョンは8

191 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 05:53:17.18 ID:KMj82CKh.net]
>>186 ので Vista (ってかWin2008srv) と IE9だと、今ちゃんとIE起動したなあ。

192 名前:デフォルトの名無しさん mailto:sage [2014/05/02(金) 20:40:03.81 ID:HFpQdt1h.net]
そもそも自分でエンコーディング指定しない状態でうまくいくと思うのがおかしくね

193 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 13:27:52.37 ID:rkawSHax.net]
クラシック コマンドと PowerShell の間のエンコード設定
ttp://d.hatena.ne.jp/ladybug/touch/20111203

194 名前:デフォルトの名無しさん [2014/05/17(土) 13:01:56.04 ID:zPk4Oowy.net]
>>190
おかしくないね

195 名前:デフォルトの名無しさん [2014/05/17(土) 13:04:18.77 ID:zPk4Oowy.net]
>>190
そもそも自分でエンコーディング指定しない状態でうまくbatは
そのまま実行できた方が便利じゃね

おかしくねってなんだよこのカス
お前のせいでこのスレ過疎ってんじゃねえかよ
俺は苦労なく適応してるスタイリッシュ糞野郎は死ねよ

196 名前:デフォルトの名無しさん [2014/05/17(土) 13:05:13.85 ID:zPk4Oowy.net]
>>190
そもそも自分でエンコーディング指定しない状態でうまくbatも
そのまま実行できた方が便利じゃね
>>191
それがめんどいって言ってるんだけど

だからこのスレ過疎ってんだけど

197 名前:デフォルトの名無しさん [2014/05/17(土) 13:06:51.90 ID:zPk4Oowy.net]
>>191
ドヤ顔1行レススタイリッシュでああかっこいい
これでもうまく出来ない
たとばestcmdのことだよ
やってみろごみ



198 名前:デフォルトの名無しさん [2014/05/17(土) 13:09:30.55 ID:zPk4Oowy.net]
そもそも自分でエンコーディング指定しない状態でうまくCUIコマンドは
そのまま実行できる方が便利とおもわないほうがおかしくね

199 名前:デフォルトの名無しさん [2014/05/17(土) 13:10:47.73 ID:6QUaAdwh.net]
そもそも自分でエンコーディング指定しない状態で動いてるCUIコマンドは
そのまま実行できた方が便利とおもわないほうがおかしくね

200 名前:デフォルトの名無しさん [2014/05/17(土) 13:21:35.98 ID:6QUaAdwh.net]
>>191
設定してもestcmdがうまく変換できない
試してみなくても絶対できると思うこむのがおかしくね

201 名前:デフォルトの名無しさん [2014/05/17(土) 21:10:33.02 ID:blVZ2esz.net]
こちらの質問を投稿されてから少し時間が経ちましたが、その後の状況はいかがでしょうか

とか気持ち悪いからまれ方する掲示板には絶対に書き込みしないが
ここでカスどもを叩きつぶんつ

202 名前:デフォルトの名無しさん [2014/05/17(土) 21:25:14.42 ID:blVZ2esz.net]
単純にエンコード指定しただけではうまくいかないことがあるのは明白
試しもしないで大嘘書いてんじゃねえよクズ

203 名前:デフォルトの名無しさん [2014/05/17(土) 23:03:47.67 ID:blVZ2esz.net]
こちらの質問を投稿されてから少し時間が経ちましたが、その後の状況はいかがでしょうか

とかいう気持ち悪いからまれ方する掲示板から出てくんな

204 名前:デフォルトの名無しさん [2014/05/21(水) 01:04:44.83 ID:sYItXBaD.net]
utf8を出力するコマンドを扱うのは厄介で
普通に実行すると、utf8がsjisに文字化けした文字列が出力され、
これを > しようもんならさらにutf-16leでエンコードされて涙目になる。
> そもそも自分でエンコーディング指定しない状態でうまくいくと思うのがおかしくね
なんていう話ではない>>190>>191

これ(utf8がsjisに文字化けした出力)をファイルに落として(sjisでエンコード指定(Default))
Get-Contentで読み込む(utf-8でエンコード指定)と
文字コードはあってるのにバイトが欠けたような化け方をして元のコードには戻らない。
cmd.exeのutf-8→sjisの変換(iconvとかnkf)ではそんなバイト欠けしないので
暗黙の多重エンコードのせいでバグのような挙動になってるのだろう。

get-content でutf8なファイルを-Encoding utf8指定して読み込むとすべてうまくいくので
コマンドにもutf8でエンコードで指定できればうまくいきそうではある。
でもコマンドにはエンコード指定ができないのだ。
これはcmd.exeと一緒なので普通なんだけど。

cmd.exeでutf8を扱うのはXPからの悲願だったわけで
sjisに化けた文字をどうこうするよりやはり生のutf-8を出力してもらうのが最善であろう

Diagnostics.ProcessStartInfoのStandardOutputEncodingを設定すれば
ナマのutf-8を吐いてくれる。
つまり、Diagnostics.ProcessStartInfo の設定してとあるutf-8出力コマンドに
引数を渡すラッパをpowershellスクリプトで書けばいい

手間といえば手間だが
cmd.exeでutf8を扱うのはXPからの悲願だったわけで
必要な手間だといえる

205 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 02:18:31.24 ID:ta57bKtc.net]
標準出力のutf16leとsjisは自動判別されるがutf8は判別しない。
utf8での出力は問答無用でsjis出力される。$OutputEncoding は関係しないようだ。
.netのDiagnostics.ProcessStartInfoの StandardOutputEncodingをutf8に指定して
プロセスを作成すれば、化けずにutf8で表示できる。

utf8のファイルならば自動判別される。
Get-Contentで文字コードを指定しなくてもutf8のファイルを読み込めるし
> をしたら、化けずに正常にutf16leに変換される。

206 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 02:27:53.59 ID:ta57bKtc.net]
UTF8の標準出力は無視というより
単純にBOMBなしUTF8はスルーされるってだけの話なのか
BOMBなしUTF8は-encoding utf8すれば読めるが強制sjis変換される
BOMBがないutf8はちゃんと表示された

207 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 02:28:38.07 ID:ta57bKtc.net]
×BOMBがないutf8はちゃんと表示された
◯BOMBありのutf8はちゃんと表示された



208 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 18:11:51.04 ID:WiuU0w7h.net]
>>202
俺が言ったのは、エンコーディング指定なしで望みの形に自動で入出力される、なんて都合のいいもんのはずないだろってことだけだが
特にUTF-8が厄介なのはcmd.exeの頃からそうなんだから

209 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 15:38:40.24 ID:/bbRYJfN.net]
テキストはバイト列じゃなくて文字列として扱われる
PHPとかPtyhon2とかしか知らないと、間違う

210 名前:デフォルトの名無しさん [2014/05/30(金) 23:45:52.42 ID:F99LD7Fr.net]
>テキストはバイト列じゃなくて文字列として扱われる
バイナリとして比較するということを言いたいのかな?

211 名前:デフォルトの名無しさん mailto:sage [2014/05/31(土) 01:17:39.96 ID:HDDKJJTo.net]
逆だろ

212 名前:デフォルトの名無しさん [2014/05/31(土) 01:45:04.55 ID:tHdAdTRr.net]
>Diagnostics.ProcessStartInfoのStandardOutputEncodingを設定すれば
>ナマのutf-8を吐いてくれる。

これは勘違いで誤り。
utf-8をsjisに変換してくれる、が正しい。cmd.exeでも同じ挙動。

そもそも適切なエンコーディング指定する方法がないのだから
>そもそも自分でエンコーディング指定しない状態でうまくいくと思うのがおかしくね
で軽々しく済む話ではないのは明らか

213 名前:デフォルトの名無しさん mailto:sage [2014/05/31(土) 01:48:59.81 ID:YDFuTMoW.net]
むかしは、シフトJISのテキストをバイト列として(バイナリとして=j処理した。
(当初からJavaは、テキストを文字列として処理してきた)

いまは、Perl, Python, Rubyは、文字列としてテキストを処理できる。
スクリプトがどの文字コードでかかれてるか明記。
出力するとき、内部の文字コードから表示の文字コードに変換。

214 名前:デフォルトの名無しさん [2014/05/31(土) 02:00:38.69 ID:tHdAdTRr.net]
ちょっとエンコーディング指定すればいいなんて手間じゃねえし
なめてんだろ

215 名前:デフォルトの名無しさん mailto:sage [2014/05/31(土) 12:22:25.77 ID:LqLiNHuI.net]
>>190本人が、何もしなくてもUTF-8形式を適切に処理してくれるって考えは甘いってことを理解してりゃそれでいいよ

216 名前:デフォルトの名無しさん mailto:sage [2014/06/02(月) 22:17:32.05 ID:iXPDpkrB.net]
>>213
BOM付きUTF8ならば適切に処理されるんだからややこしいのであって
考えが甘いとかそういうことじゃないんだよ

こうやって精神論にすり替えて叩いてくる
どうせわんくまのバカどもが食いついてんだろ
お前らいつも参考にならないんじゃアホ

217 名前:デフォルトの名無しさん [2014/06/02(月) 22:30:48.29 ID:iXPDpkrB.net]
>>206
口だけのわんくまカス(あるいはそれと類する存在)よ
俺は100%間違ってないみたいな態度とってるんだがお前は間違ってんだよ
都合がどうのこうのだという話はしてない
少なくともお前の書き込みはいらなかったし死んでほしい
利用者のアラをつつくような(もちろんこちらのあらはなかった)グズは死ねよ

以下の挙動がcmd.exeなどとは違っててバグなんじゃないかと言ってるんだが?
アドバイスくれクズ

>>202
>これ(utf8がsjisに文字化けした出力)をファイルに落とし(Set-Content
-Encogin Default指定) て
>Get-Contentで読み込む(-Encoding utf8でエンコード指定)と
>文字コードはあってるのにバイトが欠けたような化け方をして元のコードには戻らない。
>cmd.exeのutf-8→sjisの変換(iconvとかnkf)ではそんなバイト欠けしないので
>バグだと思われる。

hyperestraier のようなutf8出力コマンドで再現可能



218 名前:デフォルトの名無しさん mailto:sage [2014/06/02(月) 22:34:16.22 ID:iXPDpkrB.net]
>>206
そもそも適切なエンコーディング指定する方法がないのだから
>そもそも自分でエンコーディング指定しない状態でうまくいくと思うのがおかしくね
で軽々しく済む話ではないのは明らか
cmd.exeではこんなビット欠けは起きない

219 名前:デフォルトの名無しさん [2014/06/02(月) 22:37:17.51 ID:iXPDpkrB.net]
>>206
コマンドの標準出力にはエンコード指定する方法なんかないので
大げさなラッパを作る必要がある
cmd.exeの頃は勝手にutf16leに変換されるなんてことなかったし
変換し直すだけでトラブルはなかった
分かったかわんくまバカ

220 名前:デフォルトの名無しさん [2014/06/02(月) 22:43:53.50 ID:iXPDpkrB.net]
echoや>の出力がUTF-16LEなのはハマるな
もともとUTF-8で出力するプログラムとかなんかおかしくなるし

221 名前:デフォルトの名無しさん [2014/06/02(月) 22:46:54.35 ID:iXPDpkrB.net]
じゃあ
echoや>の出力がUTF-16LE
である利点を語ってくれ
標準出力unicode化は今まで全く力を入れてこなかったことので悲願でも何でもない
それ以外で

222 名前:デフォルトの名無しさん mailto:sage [2014/06/02(月) 22:53:46.33 ID:iXPDpkrB.net]
>>191
正直そこらへんのブログの落書き情報よりつっこんだ話してるからね
このスレ読めばUTF8関連のトラブルは解決するだろう

もちろん俺だけのおかげであって
わんくまやムタや魔界仮面(宇宙仮面ではない)の出番はなかった
わんくまが役に立ったことなんかないがな

223 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 00:46:33.05 ID:zVTgVwHZ.net]
利点も糞も、echo(write-output)は、生のオブジェクトを扱うことになるわけで、
つまりは、.NET仕様の根幹だから今更変えようがないでしょ。
従って、文字コード変換とかは受け取る側が全部面倒見る必要がある。

が、今どきUTF-8くらい標準(共通パラメータ?)で何とかしろよ、っていう点には同意だが。

224 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 00:54:23.68 ID:Y/pEIVnr.net]
エンコーディングを指定すればいいだろ

225 名前:デフォルトの名無しさん mailto:sage [2014/06/04(水) 20:44:17.78 ID:L8qA/6qE.net]
Get-Item も Write-Output もオブジェクトの配列を引数に取りますが、

> Get-Item a.txt, b.txt # a.txt, b.txt 両方表示

> Get-Item a.txt b.txt
Get-Item : 引数 'b.txt' を受け入れる位置指定パラメーターが見つかりません。

ここまでは良いのですが、

> Write-Output 1, 2, 3
1
2
3

> Write-Output 1 2 3
1
2
3

Write-Output の2つ目のコマンドがエラーにならないのはなぜでしょうか?

226 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 00:54:18.00 ID:0UtGsb3y.net]
>>223
値を受け付けるパラメータの数が1つだけだとこういう挙動になるのかと思ったけど
Write-Hostでも同じようにエラーにならないな

227 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 20:42:25.77 ID:SJO4baaV.net]
>>214-216
いやお前は必要な情報を提示したつもりだったのかも知れんが、
>>190のレスだけじゃ一般論として文字コード意識しないと駄目だろって話にしかならない



228 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 09:45:09.57 ID:EYTmrCp1.net]
ここで聞いて良いのか分からないけど分かる方居たら教えて下さい。
Get-WmiObject -ComputerName IP -Credential $cre 〜としてサーバの情報取って来ようとしてるんですが、UserAdministrator Passなし で認証のダイアログ等を出さずに実行するだけで取得する方法はありますか?
パスワードの設定がされていればそのまま取ってこれるんですが、パスなしの場合は無理でしょうか。ちなみにドメインには参加していません。

229 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 15:47:34.27 ID:sw1PudVp.net]
WinRMを設定して使う。
SSHみたいにリモートでコマンド実行できる様になる。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<263KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef