[表示 : 全て 最新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]
スレなかったので立てました

111 名前:デフォルトの名無しさん [2014/03/01(土) 14:50:34.97 .net]
>>108
return文に指定していないものまでという意味ですか。

112 名前:デフォルトの名無しさん mailto:sage [2014/03/01(土) 15:32:48.27 .net]
>>111
そういうこと

明示しない場合は最後の式の値が戻り値になる、なんてのは結構あるけど
頭から最後までの式の結果を連結して返されるってのは「関数の戻り値」って考えると見たこと無い。

戻り値じゃなく出力って考えるとパイプラインのことと相成ってスッキリするんだけどね。

113 名前:デフォルトの名無しさん [2014/03/01(土) 16:40:40.92 .net]
>>112
なるほど。
出力ということですね。
returnは、関数内でステートメント終了!の意味なんだろうな。
ってことは、常にreturn値だけをとりたいときは、安心のために。
$a=Out
$a.[$a.Count-1]
てな感じになるのかな。

114 名前:デフォルトの名無しさん [2014/03/01(土) 17:42:47.70 .net]
おっと
$a=out
$a[-1]
でよかった。

115 名前:デフォルトの名無しさん [2014/03/01(土) 18:46:25.77 .net]
それぞれ、悩む点が異なるので
いろいろ勉強になるな〜

116 名前:デフォルトの名無しさん mailto:sage [2014/03/01(土) 23:04:20.14 .net]
>>101
例に突っ込んでもしょうがないかもしれんが
文字列を直接埋め込んで何もしないって状況がありえなくね
echo hoge ならともかく

$a = New-Object Collections.ArrayList
$a.Add(100)
return $a

とかなら分かるけど

117 名前:デフォルトの名無しさん [2014/03/02(日) 17:14:32.59 .net]
>>116
おれもよくわからないんだけど。
無いんじゃないかな。
あるいは途中でのチェックのために入れたいとか。
だとすると、他の書き方をするべきなんだけど。

ともかく
他の言語だったらエラーで、そういう記述ができないんじゃないかな。
他の言語の関数だと、明示的に出力指定すると戻り値としてでなく、
コンソール出力等に返され、戻り値には入らない。
それを言っているんだと思う。


PowerShellで他言語と同じように使用したいなら、
他言語と同じような使用方法を守れば問題ないんだと思う。
たとえば、ファイル一覧をほしくて関数としてdirを使うなら。

function Out{
$dir = dir
Write-Host $dir
return $ture
}

$kekka=Out

とすれば戻り値の結果$kekkaには余分なものは入らない。
要は、PowerShellは融通が利いちゃうんで戸惑ってる
ってころじゃないのかな?
他の言語でできないことができちゃうってことでしょ。

118 名前:デフォルトの名無しさん [2014/03/02(日) 17:16:35.00 .net]
捕捉だけど

>無いんじゃないかな

PowerShellの場合だと、それをわざと利用することはあるが、
他言語ではそういう使い方できないだろうという意味。

119 名前:デフォルトの名無しさん [2014/03/02(日) 17:22:32.45 .net]
質問からの例でいえば( >>101 の例でいえば )
本来は

function Out () {
Write-Host"hoge"
return $true



120 名前:
}

と記述する必要があるということでしょ。
外部関数を中で使うなら

function Out () {
$a=外部関数()
Write-Host $a
return $true
}

ってな感じですね。
実際、私はそういう記述してる。
[]
[ここ壊れてます]

121 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 19:19:22.75 .net]
なんか画面出力の話にすり替わってるけど戻り値の話でしょ? >>99 が元ネタなんだから。

上でも上げたけど、C言語でいうところの printf みたいな
副作用がメインで戻り値はおまけで大抵は捨てるような関数を powershell で同じ感覚で使おうとすると
戻り値に混ざってきてなんじゃこらってなるって話じゃないのか?
いちいち [void] でキャストして捨てますよーって明示しなくちゃいけなくてめんどくさいと。

int main() { printf("hello\n"); return 0; }
の戻り値が { 6, 0 } になるようなもんだ。

>>101 の例でいくと、他の言語では、例えば C でも C# でもなんでもいいけど
"hoge" は定数を置いただけだからなんも起きないし戻り値にも含まれない。コンパイルする時の最適化で消されるだけ。
でも powershell の場合は function の中で書いた式の戻り値全部を連結して返す仕様になってるから
("hoge", $true ) が戻り値になる。他の言語経由してる人なら return $true って書いてあったら
$true しか返ってこないって普通考えちゃうよ。

122 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 19:20:11.13 .net]
>>119
だから、その書き方とかキャストや、あるいは戻り値を参照渡しする、とかがめんどくさいんでしょ。

123 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 19:21:03.27 .net]
うわ、かぶったw

124 名前:デフォルトの名無しさん [2014/03/02(日) 19:42:56.62 .net]
>>120
そっか勉強不足だった。
Cは使わないけど。ってことは、コーディング上では、
int main() { "hoge";printf("hello\n"); return 0; }
と書いても、コンパイラーでhogeは無視してくれるのか。しらんかった。
エラーかと思ってた。
出したいときは別途記述が面倒かもしれないけど。

画面といったのは"hoge"も別途必要としたから記述したのだと理解した
関係。

125 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 19:57:35.48 .net]
powershell でいうところの (関数)[-1] って呼び出しが他の言語の一般的な関数呼び出し、って言えば何の話なのかわかってもらえるんじゃね。

126 名前:デフォルトの名無しさん [2014/03/02(日) 20:01:18.83 .net]
まあ、そういう仕様としかいえないよな。
俺の場合だと、XAMLを関数内で組み立てるときにPoowerShellの関数
使用は重宝してる。
普通の言語だと、逆にくっつける操作が必要になるので煩雑になっちゃう。
return文自体使わないけど。
使う場面次第だな。

127 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 20:08:16.13 .net]
パイプラインで出力をつないでいく設計思想だからねえ。

128 名前:デフォルトの名無しさん [2014/03/02(日) 20:16:15.40 .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]
逆だろ






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

前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