13/09/12 18:35:04.72 .net
スレなかったので立てました
2:デフォルトの名無しさん
13/09/12 19:09:30.27 .net
2GET
3:デフォルトの名無しさん
13/09/12 21:50:46.13 .net
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
4:デフォルトの名無しさん
13/09/13 03:15:57.60 .net
Part 1ではないようなきがする
5:デフォルトの名無しさん
13/09/13 03:17:22.71 .net
Windows@2ch掲示板
URLリンク(toro.2ch.net)
6:デフォルトの名無しさん
13/09/13 03:18:32.31 .net
Windows PowerShell Part4
スレリンク(win板)l50
7:デフォルトの名無しさん
13/09/13 03:40:10.18 .net
Windows PowerShell 【Microsoft】
スレリンク(tech板)
URLリンク(desktop2ch.tv)
8:デフォルトの名無しさん
13/09/13 06:50:15.28 .net
1 デフォルトの名無しさん[] 投稿日:2012/03/22 02:42:21
柔軟で強力な機能と体系的な操作体系を両立した次世代シェルPowerShellのスレ
特徴
windowsに標準搭載
オブジェクト指向スクリプト言語を簡潔で少ない命令向けに改良したような文法
自然言語に近い文法
MSDOSやUnix系シェルの命令の代表的なものが使えて移行しやすい
windowsの挙動を簡単なコマンドで制御できる
開発元
URLリンク(blogs.msdn.com)
9:デフォルトの名無しさん
13/09/13 06:51:13.32 .net
8 デフォルトの名無しさん[sage] 投稿日:2012/03/23 01:10:52
Win7からPowerShell ISEが標準で搭載されるようになったけど流行らんな。
対話型で直接実行できて、PSのバッチファイル書くのにも使えて、ブレークポイント使ったデバッグもできる優れものなんだがなぁ
IT部門の管理者向けって感じだから仕方ないと言うのはあるけども
VSに入れると捗るぞ
・PowerGUI VSX
URLリンク(visualstudiogallery.msdn.microsoft.com)
・PowerConsole
URLリンク(visualstudiogallery.msdn.microsoft.com)
10:デフォルトの名無しさん
13/09/13 19:49:37.92 .net
自作GUIシェル作る時に便利だね
11:デフォルトの名無しさん
13/09/14 23:08:22.98 .net
ただとにかく実行が遅い
12:デフォルトの名無しさん
13/09/15 01:59:06.40 .net
モジュールが強力だよな
特定目的に合わせて拡張できる
13:デフォルトの名無しさん
13/09/15 13:12:39.19 .net
荒れたスレにナゲット再び
〃. ̄. ̄.ヽ
|: : : |
| : : :|
ヽ._._./
URLリンク(monobook.org)
14:デフォルトの名無しさん
13/09/16 21:34:37.45 .net
なんか汎用性が無いと使う気になれない。
汎用性とはMacとLinuxでも動くということなんだけと。
15:デフォルトの名無しさん
13/09/16 22:59:43.46 .net
じゃあ使うなってこと
なんだかんだでMS漬けな顧客にとっては便利だしな
SUAで万全とは言わんなりに互換持ててるからな
まあcui自体時代遅れ。スマホ世代はコマンドプロンプトの存在知らんからな。
まあ有用なんはもう勝手に移植されるからな。勘違いクズアプリ屋もvse持っててクズアプリ量産してるようだけど、クズはクズ。
Macとか言ってたが、非互換性Winどころじゃないだろに話題に挙げられて逆に可哀想だな。SUSもやめたり初めたり、ポリシーゼロだぜ。ちったあ怒れよ消費者!
宗教じみたマカーじゃないと言われた予防線も貼っとくか。
マニア向けPCに過ぎない携帯屋持ち出す暇で、Linuxの最強シェルとかでっち上げてこね回していればいいじゃないの?
なにパワーシェル最強じゃないの?じゃあ何がいいの?まさかbas…ぷぺぺーwwww
で?ないでしょ。
ながっからしくなったけど、要はあんたただの馬鹿ってこと。
あんたの思う汎用性、来年には無に返してるかもよw
事例は山ほどあるわけで。さすがにここまでつつけば色々思い当たるやろ
16:デフォルトの名無しさん
13/09/17 11:03:29.42 .net
長い。アホか
17:デフォルトの名無しさん
13/09/17 19:59:34.38 .net
Linuxははやくパワーシェルをパクるべきだ
今時文字列をパイプするなんて笑っちゃうよな
18:デフォルトの名無しさん
13/09/18 21:28:25.75 .net
VBScriptに比べて便利?
19:デフォルトの名無しさん
13/09/18 21:41:22.47 .net
>>18
うん
20:デフォルトの名無しさん
13/09/18 21:42:23.67 .net
文法がわかりにくい。
将来性が不安だ。
コマンドレット?
ファイルオープンの仕方がわからない。
21:デフォルトの名無しさん
13/09/18 23:25:58.35 .net
同意
お勧めラッパーとかないの
python、rubyあたりでさっくり書けると嬉しいのだけど
22:デフォルトの名無しさん
13/09/21 01:35:54.02 .net
pashが頑張ってくれれば化けるかもしれない
unixを滅ぼしかねないほどに
23:デフォルトの名無しさん
13/09/21 19:23:45.08 .net
ラッパーとかなんもわかってねえじゃん・・・
perlやjavascriptみたいにCライクな勘では使えないけど
ちょっと時間とって覚えれば使えるから。
騙されたと思って勉強してみろって
24:デフォルトの名無しさん
13/09/21 20:54:55.51 .net
VisualStudio使わずに高機能なGUIをサクサク作れるのがいいね
25:デフォルトの名無しさん
13/09/22 02:26:49.39 .net
はようwindows以外でもまともに使えるようになってくれ
sedで文字列を抜き出すような泥臭い作業はもう嫌だお
26:デフォルトの名無しさん
13/09/26 12:25:20.13 .net
pashというか、unixのshellってbashとかせいぜいzshあたりが高性能とされてるけど、もっと根本的に作り替えようって動きはなかったのかな
文字列操作のしにくさとかひどいよな
27:デフォルトの名無しさん
13/09/26 17:56:08.27 .net
そのうちJavaがパクるだろ
28:デフォルトの名無しさん
13/10/05 19:28:19.44 .net
やっぱJavaがいいね
29:デフォルトの名無しさん
13/10/08 01:48:23.25 .net
それはない
でもPowerShell使ってるとMSの手のひらのうちだなーって思ったりはする
bashと比べたら全然いいのに、諸々込みで結局お仕事はbashな毎日
職場からマカー消えてくれればいいんだが
30:デフォルトの名無しさん
13/10/08 06:55:40.28 .net
ないなら作れ
Javaなら一通り揃ってるから簡単だろう
31:デフォルトの名無しさん
13/10/08 21:25:14.52 .net
Javaシェルか
あまり知らんけどJavaランタイム上で動く言語とかあるんだしありかもな
32:デフォルトの名無しさん
13/11/13 21:31:48.16 .net
Version 3で起動したスクリプトからVersion 2でスクリプトブロックを実行したいのですがどうすれば出来ますか?
33:デフォルトの名無しさん
13/12/17 10:10:30.04 .net
PowerShellの概念は強力だと思う、速度は別として最強でしょ
34:デフォルトの名無しさん
13/12/17 14:40:16.62 .net
まあ異論はない
MS以外でも使いたいとか速度こそ究極とか異論がある奴はいると思うけどね
35:デフォルトの名無しさん
13/12/17 18:05:07.68 .net
いちいちパイプラインのパースしなくていいからパフォーマンスでも有利な気がするが遅いのか?
36:デフォルトの名無しさん
13/12/20 00:56:04.07 .net
フリーソフトがcmd用のコマンドラインを幾つか提供してある場合があるが、
PowerShellは利用できるのか?
扱うファイルはcp932以外だと文字化けしてしまうのか?
対処方法はPowerShellになってからあるのだろうか?
37:デフォルトの名無しさん
13/12/20 08:22:58.41 .net
cmdで使えるコマンドはみんな使えるし
使いにくいならラッパーコマンドを書けばいい
38:デフォルトの名無しさん
13/12/20 12:22:53.46 .net
>>37
ありがとう。usb外すコマンドライン用のソフトとか
幾つかのフリーソフトを使ってたから助かる。
「文字化け」問題はnkf32が実装で対応できるっぽいね。
長いけどPowerShellによる変換コマンドもあるようだ。
cmdの方がウィンドウズ8.1でもメンテ入ってないような仕上がりだったので
PowerShell学ぶわ。ありがとう。
39:デフォルトの名無しさん
13/12/20 21:18:01.86 .net
C#やVBのコードを書いてコンパイル以外にPowerShellからクラスを追加する技術は有りますか?
40:デフォルトの名無しさん
13/12/22 01:08:25.77 .net
>>39
こういうことではなく?
Add-Type @"
public class Hoge { public int x; }
"@
$x = New-Object Hoge
41:デフォルトの名無しさん
13/12/29 11:16:29.24 .net
違います
42:デフォルトの名無しさん
14/01/03 16:07:43.27 .net
「Powershellからクラスを追加」
どこへ追加したいんだ?
43:デフォルトの名無しさん
14/01/03 16:57:58.28 .net
Add-Class Hoge {
$mProp = 100
function DoSomething {
param(x)
Write-Host x * $mProp }
}
$o = New-Object Hoge
$o.DoSomething(100)
44:デフォルトの名無しさん
14/01/03 20:26:32.08 .net
>>37みたいにラッパーコマンドを書けばいい
とか言ってるけどちょっとだけ追加するとかだと返って一苦労になるんだよね
例えば複雑なバッチファイルにちょっとpowershellのコマンド書きたいとか、できないしね
バッチとかの遺産はそのまま使えないと思った方がいい
45:デフォルトの名無しさん
14/01/11 00:01:38.07 .net
ISE みたいにプロンプト等へのコマンド入力や結果出力と
Read-Host とか Write-Host、[Console]::Writeline なんかを分離したければ
自力でホストを書かないと無理なんだろうか。
powershell -Command - でパイプでつないで他プログラムから使おうとしてるんだけど
Read-Host なんかの対応がすっきりしない。
46:デフォルトの名無しさん
14/01/20 05:25:29.55 .net
単純に全てがオブジェクトになってるってのがプログラマなら面白がるよね
rubyあたりから手できそうでなかったアプローチだ
5年以上経った今となっては目新しくもなんともないけどw
47:デフォルトの名無しさん
14/01/20 05:26:59.35 .net
勝手に独自のwebclientコンポーネントを
curlとかwgetとか名付けてるのはあかんわ
あかんとこもけっこうある
48:デフォルトの名無しさん
14/01/20 09:12:21.99 .net
文法がもうちょい C# (っていうか C っぽいの)を受け付けてたらプログラマ受け良かったんだろなと思う。
49:デフォルトの名無しさん
14/01/24 15:18:36.81 .net
webページにPOSTしてゴニョゴニョするスクリプトを
すぐに書けたはいいんだが.netやってる人はお馴染みの
サーバーによってプロトコル違反が発生しました.
エラーが出て困った
結局powershell.exe.configなんてのを作るはめに・・・これはダサい
50:デフォルトの名無しさん
14/01/25 02:41:18.03 .net
Out-File -FilePath "Test.txt" -InputObject "test"
かっこよすぎワロタ
51:デフォルトの名無しさん
14/01/25 13:34:46.99 .net
powershellを起動させると他のEXCELなどのアプリと同じようにタスクバーにアイコンが表示されますが
起動させたpowershellから何らかのコマンドを実行してこのアイコンを点滅させることはできますか?
つまりpowershellが他のウインドウの下に隠れている場合などでもユーザーに気づかせたいのです。
具体的にはps1ファイルを実行して処理が完了したら、ps1ファイルを実行しているpowershellの
タスクバー上のアイコンを点滅させたいのです。
52:デフォルトの名無しさん
14/01/25 14:03:45.54 .net
Windows API の FlashWindowEx を使えば光らせることが出来るらしい。
Add-Type で適当なクラスを作って P/invoke で呼び出せばいい。
MS 公式で cmdlet 化したものを配布してるからそれつかってみたらどうかしら。
サンプルにある Start-Sleep -Seconds 5; Get-Process -Id $PID | Invoke-FlashWindow を実行してから
最小化してほっといたら5秒後にペカペカ光ったよ。
URLリンク(gallery.technet.microsoft.com)
53:デフォルトの名無しさん
14/01/25 19:35:16.09 .net
PowerShell の言語仕様見てたら普通にプログラミング出来そうと思ったけどそのままだと遅いんだよね。
どれくらい遅いかと言うと最弱レベルだった。
測定は時刻を取って秒が変動するまでの while のループ回数を取った。
Lua(数値)だけは CPU時間なんだけど時刻を数値で取る方法が分からなくて。
速い >>>> 遅い
C# on PowerShell > Lua(数値) > HSP3.31 = JavaScript > Lua(文字) > VBScript >> AutoIt3 = AHK >> UWSC >> PowerShell >> DOSコマンド
測定環境は Core i3 物理2コア Windows 8.1
i++ inc(i)
PS4-C# 4145566 4088694
Lua CPU 1012841 836647
HSP3.31 915425 591546
JS chrom 777203 736391
JS fx 647385
VBScript 539979 340808
Lua文字 525671 473907
AHK Sec 188555 104679
AutoIt3 220890 82255
AHK Now 89020 71513
UWSC 23629 9137
PS4 4194 2108
.bat 471
54:デフォルトの名無しさん
14/01/25 20:20:49.34 .net
まああくまでバッチ処理レベルだしねえ。期待されてるのは。
なんでも出来る感じもするけどそれって結局 .NET がすごいからであって
55:デフォルトの名無しさん
14/01/25 21:49:57.99 .net
ゴミ
56:デフォルトの名無しさん
14/01/26 09:00:16.19 .net
>>53
>時刻を取って秒が変動するまで
よく意味がわからない…
57:デフォルトの名無しさん
14/01/26 09:31:04.45 .net
>>52
うわピカピカ光った!
どうもありがとう~!
でもこれって引数とか沢山あるけど、もう単純に「呼ばれた瞬間に3回点滅!」みたいにして
短く出来ないかな?
いま仕事してる現場で使いたいんだけど、ネット出来ない環境だしUSBメモリとかも使用禁止だから
このスクリプト印刷して持っていって自分で打ち込むしかないんだけど
コメント部分除外してもスクリプトが長いから、打ち込むの遅い自分にはつらい…
書き換えようとトライしたけど自分には高度過ぎて無理だった…
58:デフォルトの名無しさん
14/01/26 09:33:03.88 .net
多分加算命令数/秒ってことでしょ?
ループの1処理ごとに時間取って比較してるのかねえ。
だとすると加算処理の速度比較っていうよりシステムコールの速度比較みたいなもんだな。
あと選別した言語に HSP とかなんで入ってるんだ?
Java とか ruby とか python はどこいったんだ。
59:デフォルトの名無しさん
14/01/26 10:09:37.62 .net
>>57
削れたのほぼコメントぐらいだけど書いてみたよ。
URLリンク(pastebin.com)
引数もなにもなくて、Invoke-FlashWindow すると powershell が 3回光る。
光る回数とか変更したかったら fInfo.uCount = 3 を書き換えてくれ。
60:57
14/01/26 11:36:54.99 .net
>>59
時間のかかる処理をするps1ファイルの先頭にこれ入れて、最終行を「Invoke-FlashWindow」にしたら
処理完了時にバッチリ光りました!
せっかく書いてもらったので絶対打ち込みます!(・`ω´・)
ありがとうございました!
61:デフォルトの名無しさん
14/01/26 12:31:24.93 .net
PowerShellもそこそこ補完できるようになって来たけど、C#のコードはさすがに無理だからなー
Roslynが完成すればTabExpansionからIntelliSense呼び出すとかできるかもしれんが
62:デフォルトの名無しさん
14/01/26 17:48:22.43 .net
>>58
> Java とか ruby とか python はどこいったんだ。
使ってないし使う予定もないからだけど、そこらへんは普通にググったら出てくるだろ。
基本的に UWSC(スクリプト)との比較目的でやり始めたから
キーボード、マウス操作できる AutoIt や AHK が入ってて
日本語でできる HSP が入ってる。
HSP は以前、使ってもないのにこき下ろしたことがあるけど実際どうだろうと思ってね。
VBScript や JavaScript はメジャースクリプト言語の代表として比較対象に選んだ。
UWSC があんまり遅いんでもっと遅いのはあるのかなってことで DOS コマンドでやってみてその後継の PowerShell もやってみたってわけ。
スレリンク(software板:49番)+74
> 49 速い HSP3.31 = JavaScript (chrom) > VBScript >> AutoIt3 > AHK >> UWSC 遅い
> 74 速い Lua(数値) > HSP3.31 = JavaScript (chrom) > Lua(文字) > VBScript >> AutoIt3 > AHK >> UWSC >>>> DOSコマンド 遅い
それにPowerShellを加えたのが >>53
ちょっと変更があったのは時刻の取得が不公平な部分があったのを修正したから。
63:デフォルトの名無しさん
14/01/26 18:43:15.03 .net
>>58
URLリンク(www.infoq.com)
>PHP >> Perl >> Python > Flex > Actionscript > Ruby > Javascript > Powershell > F# >> VBScript
これを見ると、PowerShell は F#.net より高速だし、 VBScript よりはるかに高速と言うことになっているけど、どうなんだろうね。
PowerShell の時刻取得はコマンドレットだから呼び出しに時間がかかって当然なんだけど、
コマンドレットを使わなければC#に頼らなくても >>53 の中では最速ってことなんだろうか。
確かに別プロセスを立ち上げて時刻取得したら遅いだろうけど、
DOSでの時刻取得は環境変数を使ってあの速度だったから、シェルスクリプトは遅いんだろうと思って気にしてなかった。
円周率何万桁とかの時間を計測した方が正確なんだろうけど
時刻が秒単位でしか取れない処理系だと端数が出るんで不公平かなと。
あと、めんどくさいし。
よく知らない言語を調べながらやるのはめんどくさいし、スクリプトは最適化されないから自分で最適コーディングしないといけないし。
ループで使ってる時刻取得方法(速度順)
C# on PS sec = DateTime.Now.Second;
Lua(数値) sec = math.floor(os.clock ())
HSP3 val = gettime(6)
Lua(文字) sec = os.date("%S")
JavaScript sec = new Date().getSeconds();
VBScript val = Now
AutoIt3 $SEC = @SEC
AutoHotKey sec = %A_Sec%
UWSC t = GetTime()
PowerShell [int]$sec = (get-date).Second
DOS sec = %time:~6,2%
64:デフォルトの名無しさん
14/01/26 19:06:04.20 .net
どうせやるなら100万回ループするのに何msec掛かるかを図った方が変なロスはないと思うよ
折角Measure-Commandで時間測れるんだし
65:デフォルトの名無しさん
14/01/26 22:09:50.36 .net
Measure-Command で 100万回のループやってみた。
C#の関数内のループで 53ミリ秒だった。
PowerShell だと・・・
$cnt++ 単純ループ 11秒
inc($cnt) 関数呼び出し 289秒
>>53 では 1,000倍の差があったけど、単純ループだと 200倍になってるんで
コマンドレット呼び出しが 5倍不利に働いてると言える。
UWSC の 100万回単純ループが 12秒だったんで
UWSC 程度の速度はあるということになるけど
いろいろな機能をコマンドレットに頼るわけだから
実用機能で考えれば >>53 を基準にしていいんじゃないかな。
VBScriptはだいたい0.7秒
明らかにPowerShellは遅いんだけど
このグラフはもしかして C# とか呼び出してるんだろうか。
URLリンク(www.infoq.com)
66:デフォルトの名無しさん
14/01/27 18:58:09.07 .net
何が言いたいのかよくわからんなあ
それでpowershellはダメだと言いたいわけ?
67:デフォルトの名無しさん
14/01/27 19:42:07.25 .net
普通にプログラミング言語っぽいしプログラム板にスレ立ってるけど
速度は遅いから重い処理を記述するのには向かないということを
自殺ベンチ
もとい、自死ベンチ
あれ?
自作ベンチ結果を披露しているわけだが
それでは不満か。
そう言えばバッチファイルのスレもこの板だったか。
記号だらけでWebだと検索しにくいんでお世話になってる。
自分で遅いというのは確認したけど
C#のコードで高速化もできるし自分の用途の範囲で問題ないと思っているんで
今ちょっと PowerShell を勉強中だから
全然ダメじゃない帝人。
長々と書いたのを「そんなこと言ってない」の一言に置換しようかと思ったけど気にせず投稿
68:デフォルトの名無しさん
14/01/27 20:57:22.58 .net
いや、はじめからそういう環境だってわかってみんな使ってるとおもうんだが・・・
69:デフォルトの名無しさん
14/01/30 17:20:55.49 .net
シェルでループの速度を測る意味が分からない
70:デフォルトの名無しさん
14/02/02 12:59:46.48 .net
サーバや、他人のPCでちょいと作業をするときにこそ役立つ。
自分の開発PCだったら、他にもっといいツールがあるし。
そんなわけで、早く Ver3以上 が標準の世の中になってほしい。
71:デフォルトの名無しさん
14/02/02 17:43:09.23 .net
俺は別にV2(=Win7標準環境)でもいいと思ってる
V1でもそこまで困らんけど、プリインスト機がまずないし
72:デフォルトの名無しさん
14/02/02 19:36:05.65 .net
ちゅうか、なんだかんだでPowerShellって言語の更新サイクル早いね
Windows依存の功罪というかなんというか
73:デフォルトの名無しさん
14/02/03 00:00:47.83 .net
GUIアプリが作れるようになるといいんだけど
74:デフォルトの名無しさん
14/02/03 00:25:42.02 .net
現状でも別に作れないことはないっしょ。Windows Form 使えるんだし。
75:デフォルトの名無しさん
14/02/05 13:34:41.80 .net
WPFでもかけるというかむしろそっちのが相性いいからちょっとした社内ツールなら楽に作れる
76:デフォルトの名無しさん
14/02/05 13:56:46.58 .net
もっとも普通は VS Express あたり落としてきて
GUI エディタでぽんぽんぽーんって作ったほうが早い気もするが
77:デフォルトの名無しさん
14/02/06 07:36:08.61 .net
ぽぽぽぽーん♪
を思い出した。
78:デフォルトの名無しさん
14/02/08 17:47:23.21 .net
gci "C:\hoge.txt" | select-string "abc"
でテキストファイルの内容検索すると結果が「ファイル名:行番号:内容」という形式で表示されますが
行番号と内容だけ表示することって出来ないのでしょうか?
79:デフォルトの名無しさん
14/02/08 20:21:13.40 .net
オブジェクトをパイプでつなげてselect linenumberみたいに欲しいプロパティを指定する
オブジェクトにどんなプロパティがあるかはget-propertyで調べられるよ
80:デフォルトの名無しさん
14/02/08 20:23:17.58 .net
ごめんget-memberだった
81:デフォルトの名無しさん
14/02/08 20:32:40.64 .net
>>76
PowerShell Studio使えばPowerShellでWinformのポトペタはできるよ
他Admin Script Editorにもあったと思うけど、使ったことないから知らん
>>78
デフォルトでMatchInfo型をそういう表示にしたいなら、
↓こんな感じの*.format.ps1xmlを作成して Update-FormatData -PrependPath .\hoge.format.ps1xml とか。
<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
<ViewDefinitions>
<View>
<Name>MatchInfo</Name>
<ViewSelectedBy>
<TypeName>Microsoft.PowerShell.Commands.MatchInfo</TypeName>
</ViewSelectedBy>
<CustomControl>
<CustomEntries>
<CustomEntry>
<CustomItem>
<ExpressionBinding>
<ScriptBlock>"{0}:{1}" -f $_.FileName, $_.Line</ScriptBlock>
</ExpressionBinding>
</CustomItem>
</CustomEntry>
</CustomEntries>
</CustomControl>
</View>
</ViewDefinitions>
</Configuration>
82:78
14/02/08 23:48:58.04 .net
>>79
gci "C:\hoge.txt" | select-string "abc" | select linenumber,line
でいけました。ありがとう!
>>81
PSビギナーの自分にはハードル高すぎました。すみません…
83:デフォルトの名無しさん
14/02/09 10:36:45.41 .net
>>81
URLリンク(store.sapien.com)
PowerShell Studio 2012
Price: $349.00
高すぎ
URLリンク(www.itninja.com)
Admin Script Editor (ASE)
無料の最終バージョン 3089 downloads
.net 2.0 が必要だた・・・
あ、3.5を入れればいいのか。
「Windowsの機能の有効化または無効化」でチェック入れるだけでダウンロード出来るんだなあ。
・・・反応遅い。
・・・でけた!!
追加アプリがいらないのはネイティブだけかな?
・Native Windows Form
・PowerShell KiXforms(.NET)
・PowerShell KiXforms(COM)
84:デフォルトの名無しさん
14/02/09 14:19:38.26 .net
>>82
コピぺして拡張子をformat.ps1xmlで保存してコマンド実行すればいいはずだが・・・
あ、$_.FileNameは$_.LineNumberの間違い
まあここまでやる必要もないとは思うけど
>>83
あらほんと。
昔は別の名前で無料で公開されてたんだけどな、って検索したらこっちっぽい
会員登録は必要らしいけど無料だそうな
PrimalFormsCE
URLリンク(www.sapien.com)
85:デフォルトの名無しさん
14/02/18 16:33:16.97 .net
PowerShellの Out-File と Set-Content あるいは Out-File -Append と Add-Content の違い
URLリンク(tech.guitarrapc.com)
PowerShellはやっぱり糞でしたww
86:デフォルトの名無しさん
14/02/21 23:25:51.56 .net
>>83
俺の場合は、VS Expressで画面作って
そのXAMLファイルを[string]get-contentで読み込む関数つくってる
(頭のclass文だけは削除するようにしてる)。
だから、ぺたぺた貼って、PowerShellでメニュー画面作り。
その仕組みは20分くらいで作っちゃったよ。
87:デフォルトの名無しさん
14/02/22 00:01:57.77 .net
普通に VS Express で完結しちゃったほうが早くね?
88:デフォルトの名無しさん
14/02/22 11:35:52.82 .net
>>87
いちいちコピペするの面倒じゃん。
VS ExoressでPowerShell作成環境ないから完結しないし。
89:デフォルトの名無しさん
14/02/22 11:40:54.69 .net
いや powershell 使わんで C# あたりで完結しちゃったほうが早くないかねと。
90:デフォルトの名無しさん
14/02/22 11:43:51.49 .net
そりゃものにより。
91:デフォルトの名無しさん
14/02/22 12:11:48.57 .net
Roslyn完成したらISEにC#環境とGUIデザイナ組込みーみたいなのはそのうち出るだろう
92:デフォルトの名無しさん
14/02/22 12:31:05.56 .net
Roslynでてくると
その次は、それを利用したもっと新たなステップの
スクリプトが出てきそう。
ヘルスバーグはいつも楽しませてくれる。
とはいえ、まだ先の先だけど
93:デフォルトの名無しさん
14/02/23 18:34:10.77 .net
ここ↓に載ってるLINQでの問い合わせのコードってPowerShellでもそのまま使えるの?
URLリンク(www.atmarkit.co.jp)
テーブルから取ってきた値を1個表示とか簡単なのでいいんで書き方教えて欲しいです…
94:デフォルトの名無しさん
14/02/23 18:52:54.65 .net
そもそも拡張メソッドに対応してないんだから、クエリ式なんて使えるわけないじゃないですかー
Roslynが完成すれば、Invoke-C#みたいなの作って、
部分的にC#コードでLINQクエリ実行する、みたいなことはできるかもね
95:デフォルトの名無しさん
14/02/26 20:55:45.48 .net
会社で他の人が書いたPowerShellのソースを見てて
「If($? -eq $false)」っていう記述があったんだけど、この「$?」って何なのでしょうか?
96:デフォルトの名無しさん
14/02/26 20:57:48.38 .net
>>95
help automatic_variables
> $?
> 最後の演算の実行状態を格納します。最後の演算が成功した場合は TRUE、失敗した場合は
> FALSE を格納します。
UNIX のシェル由来だね。と言いたい所なんだけど $$ とか全然違うしなあ。
97:デフォルトの名無しさん
14/02/27 02:21:37.54 .net
unixとかawkとか、既存のツールから由来してる機能は多いよ
beginやendのブロックとか
98:デフォルトの名無しさん
14/02/27 17:48:58.25 .net
PowerBoots: PowerShell で WPF が使えるツールキット
URLリンク(blogs.technet.com)
Windows PowerShell で WPF アプリケーションを構築する秘訣
URLリンク(msdn.microsoft.com)
99:デフォルトの名無しさん
14/03/01 12:12:09.21 .net
パイプライン指向だか何だか知らんが、
functionにおけるreturnの扱いにくさだけは何とかしてくれんかな。
外部コマンド(Cmdletではない)実行する度に、それらの出力をnullやら他に逃さないと、
returnが汚れるのが激しくめんどくさい。
100:デフォルトの名無しさん
14/03/01 13:20:31.29 .net
>>99
ん?
具体的なところがよくわからないんだけど
どんな感じのことを言っている?
101:デフォルトの名無しさん
14/03/01 13:48:34.89 .net
function Out () {
"hoge"
return $true
}
102:デフォルトの名無しさん
14/03/01 13:53:41.97 .net
その例の場合だと、書き方としては
function Out () {
"hoge"
}
となるんだけど。
103:デフォルトの名無しさん
14/03/01 13:58:52.35 .net
関数内で変数を使って
かえしたれば
function Out () {
$a="hoge"
$a
}
または
function Out () {
$a="hoge"
return $a
}
returnのところは
return($a) でもいい
104:デフォルトの名無しさん
14/03/01 14:17:36.86 .net
>>101
要はこの例でいえば
自分で2つ返す(hogeとtrue)コーディングをしているので
余分と思われるものがでてる。
105:デフォルトの名無しさん
14/03/01 14:23:50.15 .net
例えば SetSomething みたいな値をどっかに設定するのとか
DisplaySomething みたいな値をどっかに表示するのみたいなので成功したか失敗したかを返すような、
どっちかというと所謂副作用部分がメインの関数があったとして、
それをそのまま呼び出すと戻り値要らないのに一連の戻り値に入っちゃうのがうっとおしいって話じゃね。
C なんかでいうところだと printf の戻り値なんか普通ほったらかすのにいちいち (void) でキャストしたり
適当な変数に代入して読み捨てしないと戻り値に入っちゃうみたいな感じね。
まあそういう言語なんだって言われたらそれまでの話なんだけど。
106:デフォルトの名無しさん
14/03/01 14:24:11.73 .net
自分ではっきり出力してればいいけど
普段何も返さないコマンドがエラーメッセージとか返して来たら困るね。
107:デフォルトの名無しさん
14/03/01 14:26:04.46 .net
>>102-104
ごめん。
そもそもの言い方が悪かったけど、
functionを、他言語の”関数”と同じように、呼び出し側からはreturnだけを受け取りたいってこと。
関数内で変数を使って
かえしたれば
function Out () {
$a="hoge"
$a
}
でやっていることは、$aに代入することによって、パイプラインに流れるのを阻止した状態。
これを、外部コマンドに対して行う場合は、
$a = $(外部コマンド)
[void]$(外部コマンド)
外部コマンド | Out-Null
などなど。
>>106
その通りでございます。
108:デフォルトの名無しさん
14/03/01 14:27:35.99 .net
明示してないものまで戻り値に含まれるってのは他の言語と比較すると特異ではあるわな
109:デフォルトの名無しさん
14/03/01 14:37:28.46 .net
c#のoutがあればね。
refはあるんだが。
110:デフォルトの名無しさん
14/03/01 14:43:03.21 .net
>>108
あ、俺のレベルでその意味わかんない
111:デフォルトの名無しさん
14/03/01 14:50:34.97 .net
>>108
return文に指定していないものまでという意味ですか。
112:デフォルトの名無しさん
14/03/01 15:32:48.27 .net
>>111
そういうこと
明示しない場合は最後の式の値が戻り値になる、なんてのは結構あるけど
頭から最後までの式の結果を連結して返されるってのは「関数の戻り値」って考えると見たこと無い。
戻り値じゃなく出力って考えるとパイプラインのことと相成ってスッキリするんだけどね。
113:デフォルトの名無しさん
14/03/01 16:40:40.92 .net
>>112
なるほど。
出力ということですね。
returnは、関数内でステートメント終了!の意味なんだろうな。
ってことは、常にreturn値だけをとりたいときは、安心のために。
$a=Out
$a.[$a.Count-1]
てな感じになるのかな。
114:デフォルトの名無しさん
14/03/01 17:42:47.70 .net
おっと
$a=out
$a[-1]
でよかった。
115:デフォルトの名無しさん
14/03/01 18:46:25.77 .net
それぞれ、悩む点が異なるので
いろいろ勉強になるな~
116:デフォルトの名無しさん
14/03/01 23:04:20.14 .net
>>101
例に突っ込んでもしょうがないかもしれんが
文字列を直接埋め込んで何もしないって状況がありえなくね
echo hoge ならともかく
$a = New-Object Collections.ArrayList
$a.Add(100)
return $a
とかなら分かるけど
117:デフォルトの名無しさん
14/03/02 17:14:32.59 .net
>>116
おれもよくわからないんだけど。
無いんじゃないかな。
あるいは途中でのチェックのために入れたいとか。
だとすると、他の書き方をするべきなんだけど。
ともかく
他の言語だったらエラーで、そういう記述ができないんじゃないかな。
他の言語の関数だと、明示的に出力指定すると戻り値としてでなく、
コンソール出力等に返され、戻り値には入らない。
それを言っているんだと思う。
PowerShellで他言語と同じように使用したいなら、
他言語と同じような使用方法を守れば問題ないんだと思う。
たとえば、ファイル一覧をほしくて関数としてdirを使うなら。
function Out{
$dir = dir
Write-Host $dir
return $ture
}
$kekka=Out
とすれば戻り値の結果$kekkaには余分なものは入らない。
要は、PowerShellは融通が利いちゃうんで戸惑ってる
ってころじゃないのかな?
他の言語でできないことができちゃうってことでしょ。
118:デフォルトの名無しさん
14/03/02 17:16:35.00 .net
捕捉だけど
>無いんじゃないかな
PowerShellの場合だと、それをわざと利用することはあるが、
他言語ではそういう使い方できないだろうという意味。
119:デフォルトの名無しさん
14/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:デフォルトの名無しさん
14/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:デフォルトの名無しさん
14/03/02 19:20:11.13 .net
>>119
だから、その書き方とかキャストや、あるいは戻り値を参照渡しする、とかがめんどくさいんでしょ。
123:デフォルトの名無しさん
14/03/02 19:21:03.27 .net
うわ、かぶったw
124:デフォルトの名無しさん
14/03/02 19:42:56.62 .net
>>120
そっか勉強不足だった。
Cは使わないけど。ってことは、コーディング上では、
int main() { "hoge";printf("hello\n"); return 0; }
と書いても、コンパイラーでhogeは無視してくれるのか。しらんかった。
エラーかと思ってた。
出したいときは別途記述が面倒かもしれないけど。
画面といったのは"hoge"も別途必要としたから記述したのだと理解した
関係。
125:デフォルトの名無しさん
14/03/02 19:57:35.48 .net
powershell でいうところの (関数)[-1] って呼び出しが他の言語の一般的な関数呼び出し、って言えば何の話なのかわかってもらえるんじゃね。
126:デフォルトの名無しさん
14/03/02 20:01:18.83 .net
まあ、そういう仕様としかいえないよな。
俺の場合だと、XAMLを関数内で組み立てるときにPoowerShellの関数
使用は重宝してる。
普通の言語だと、逆にくっつける操作が必要になるので煩雑になっちゃう。
return文自体使わないけど。
使う場面次第だな。
127:デフォルトの名無しさん
14/03/02 20:08:16.13 .net
パイプラインで出力をつないでいく設計思想だからねえ。
128:デフォルトの名無しさん
14/03/02 20:16:15.40 .net
関数自体から返るものすべてがオブジェクトだと
認識しないといけないね。
129:デフォルトの名無しさん
14/03/02 20:20:34.62 .net
成否を返す関数との相性は悪いよな
あと複数結果返す関数でいえば結果が一個の時と複数の時でタイプが変わるのが気持ち悪かったわ
$x = ls とかやったときにファイルが複数あると $x.GetType() => Array だけど
一個しか無いと $x.GetType() => DirectoryInfo ときたもんだ
@()で呼び出しゃいいんだけど
130:デフォルトの名無しさん
14/03/02 20:21:58.90 .net
あくまでシェルであって言語としてはかなり歪だと思う
131:デフォルトの名無しさん
14/03/02 20:29:09.68 .net
>>129
そりゃ旧来のシェルのほとんどは単なる文字列操作にすぎないからね。
132:デフォルトの名無しさん
14/03/02 20:32:39.91 .net
いや、言語としてはいいと思う。
が、シェルだと考えると、
.NETやコマンドレットだけじゃなく、外のコマンド・プログラムをたくさん使うことになるわけなので、
それらの戻りを全部把握して処理しないといけないのは、結構大変なことだと思う。
嵌って、「パイプラインすげー」と思う人、「なんだこれ、使えねーw」と思う人それぞれ。
133:デフォルトの名無しさん
14/03/02 20:33:12.58 .net
>>128
初めは俺も思った。
なれたらこの方が便利だけど。
returnの役割は、スコープ終了と、リターンコードを返すための利用。てな感じ
なんだろな。
結果とリターンコード両方が取れるのは、俺にとっては便利。
134:デフォルトの名無しさん
14/03/02 22:50:50.92 .net
>>120
いや俺が>>116で言ったのは、文字列だけ書いたらそれが画面に表示されるってのはPowerShellくらいだから(ないことはないだろうけど)
他の言語の感覚で文字列だけ書いてたら出力に混じって嫌だって例文は違和感があるって話
printfの感覚で echo hoge って書いたら出力に混じるから困惑したってことなら分かるけどって意味
だから出力が混じって困る例なら、たとえばC#で戻り値があることを意識してないメソッドを呼ぶような例がいいんじゃないか、ってんで>>116で書いた
確かに最終版はともかくデバッグ中は文字列埋め込むこともあるかもしれないけどね
135:デフォルトの名無しさん
14/03/02 23:05:47.11 .net
なんか出力と戻り値を取り違えてる奴がいるからややこしくなったんだろな。
あと例もよくなかった。
単に戻り値を返す適当な処理を書いとけば出力がどうのって話にならなかったんだと思う。
136:デフォルトの名無しさん
14/03/02 23:31:47.97 .net
本買って読めとまでは言わんけど、man about_Returnにすら書いてあることくらいは読もうぜってことで
137:デフォルトの名無しさん
14/03/03 22:10:36.75 .net
【メモ】
write-output write-hostの違い。
ググって出てくるのは、色が付けられるとか、空行がどうのとか、そういうことばかり。
write-output "foo"
echo "foo"
"foo"
は全部同じで、パイプラインに出力。
write-host "bar" | gm
(エラー)
つまり、write-hostは、コンソールへの直接出力(パイプライン経由ではない)。
138:デフォルトの名無しさん
14/03/03 22:55:59.13 .net
コンソールっていうかホストプログラム全般な
画面へ出力することを前提としているから色を指定できる
あとSnover泣いちゃうからまずヘルプ読んであげて
139:デフォルトの名無しさん
14/03/06 18:15:30.08 .net
win8.1でヘルプが入ってなかったから、update-helpしたわけだが、英語版しか入らなかった('A`)
140:デフォルトの名無しさん
14/03/06 23:40:23.45 .net
英語を勉強するチャンス!
141:デフォルトの名無しさん
14/03/06 23:44:05.55 .net
>>138
これは実績もあるイルカに期待するしかないかw
142:デフォルトの名無しさん
14/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:デフォルトの名無しさん
14/03/08 10:57:34.76 .net
7だと最初から入ってたよね。
だから、2008R2でも特になにもしなくてもリファレンスは使えてた。
2012R2だと、どうなんだろ。
サーバの場合、インターネットに直接繋げないケースも多いわけで。
WSUSではたぶん面倒見てくれないから、SCCMとか使うのかね。
144:141
14/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
14/03/08 16:26:47.96 .net
powershell と同じフォルダにある、
デバッグ用のpowershell_ise の方が使いやすい
右のコマンド一覧から、
コマンド + オプションを選んで実行できる
146:デフォルトの名無しさん
14/03/08 16:30:57.24 .net
最近のISEはコマンド一覧とかついてるんか
147:デフォルトの名無しさん
14/03/26 20:18:38.26 LfplOf8O.net
真面目な話、
・Windows Server のユーザーである
・管理系のスクリプトを作りたい
・先の見えてる .bat や .vbs よりかは将来性がある
しかし、これらを全て満たす状況じゃないと「憶えても無駄」な嫌な匂いがプンプンしてくる、という感想を抱く。
PowerShell 推しな記事がこぞって 4~5年前だったりするし。記事が古いから役に立たないし。
でもこれからの Windows Server 管理(特に MS 製サーバーアプリ)には必須、みたいな匂いもプンプンしてくる。
管理者系の人間が嫌々使ってる、というイメージなんだけど、実際はどうなの?
148:デフォルトの名無しさん
14/03/26 22:08:56.67 Fzs/8hFo.net
そんなところじゃないの?
開発案件だったらわざわざこれを選ぶ人はいないだろうし
149:デフォルトの名無しさん
14/03/26 22:54:04.60 3UAaFn0/.net
batは低機能過ぎるし、vbsは糞言語のうえシェルじゃないし。
150:146
14/03/27 18:33:56.87 w9DVguFT.net
>>147
だよねぇ…
泣きながら学ぶことにするよ…
>>148
ええと、シェルとしての PowerShell については何も言ってないのだが…。
VBScript は言語としてはそんなに悪い言語じゃないと思ってる。
ちょっと凝ったことをやろうとすると COMオブジェクトに頼るしかなくて、おもくそ環境依存、意地になって自前実装するとウルトラ遅くなる駄目な子、というとこなら同意。
シグナルのハンドリングというところまで極めてはいないのでそこは了承願いたい。
エラーを raise できるのは知ってるが、はて SIGKIL とか SIGHUP とかを外部から受け取った時はどうだったっけ、な感じなんで。
151:デフォルトの名無しさん
14/03/27 22:54:36.60 5oUWcvgH.net
ム板で言ってもしょうがないが、そもそも開発案件で候補に挙がるような言語じゃないだろう
シェルスクリプト/ツールとして使う分には普通に便利に使ってるけど
152:デフォルトの名無しさん
14/03/30 07:01:13.94 4uJ25Yxc.net
これがそうでもない。
プロト的につかったり
メニュー画面がらみ案件に使ったり
相当使える。
153:デフォルトの名無しさん
14/03/30 07:30:21.97 Ym7n0+3V.net
そんなのVSでポトペタの方が早いじゃないですかやだー
154:デフォルトの名無しさん
14/03/30 12:03:12.26 1u4x9v7e.net
>>152
画面はVSでポトペタをそのまま使える
PowerShellでホストする。
めちゃくちゃ簡単になる。
155:デフォルトの名無しさん
14/03/30 13:20:00.33 RDnNVplQ.net
>>152
それ、VSの立場が理解できてないんだとおもうぞ
156:デフォルトの名無しさん
14/03/30 13:40:34.98 o9ag65ui.net
納品用のPCに泣きながらVSをインストールする>>152を目撃したという未確認情報が入りました
157:デフォルトの名無しさん
14/03/30 15:51:48.19 RDnNVplQ.net
>>152
たとえばWPFなら、VSで作る画面(XAML)をC#で使えるよね
これはC#用に作っているわけじゃなく、XAMLとして作られている。
独立したものなんです。これがコードビハインドという考え方。
だから同じものをVBでも使えるよね。
同じようにPowerShellでも使えるんです。
イメージわかってくれたかな?
知っているかもしれないけど、ついでなんで、
バインドという考え有るよね。
これを組み合わせるとJavaなどと比べて何倍も高い開発効率を
生めるのが、現在の.NETの世界となってきている。
なんで、Javaやめて戻ってきた次第。
158:デフォルトの名無しさん
14/03/31 00:31:05.84 3P7ATE0k.net
>>153
すいませんが、アホの俺にもわかるように教えて下さい。
Powershellでホストするって?
159:デフォルトの名無しさん
14/03/31 00:37:28.56 3P7ATE0k.net
URLリンク(d.hatena.ne.jp)
こういうことですか?
160:デフォルトの名無しさん
14/03/31 00:51:18.63 HPrdAsyG.net
xamlでUI作ったらPowerShellから読み込んでShowDialog()で呼び出すってだけじゃ?
161:デフォルトの名無しさん
14/03/31 06:31:38.92 nFhjZp0H.net
$arr=ls
$arr.Name
$arr.fullname
Nameでファイル名、fullnameでフルパスを取り出すのは便利
ただし、入力補完ではこれらの候補が出ない
162:デフォルトの名無しさん
14/03/31 09:16:41.02 ObzhI129.net
>>160
そもそも ls.Nameってあったけ?
163:デフォルトの名無しさん
14/03/31 13:34:02.17 FswzEzL9.net
>>160
ls -Nameの間違いかな?
$arr=ls
$arr -Name
としたいということだとすると、無理じゃないかな
new-alias arr ls
arr -Name
ならいけるけど
164:デフォルトの名無しさん
14/03/31 13:42:03.34 Z/deP/O+.net
>>156
データバインドって、Angularのやってるアレ?
スクリプトならnashornで書く方が速いんじゃないの
165:デフォルトの名無しさん
14/03/31 13:56:19.72 FswzEzL9.net
>>163
そういうのは好きなのえらべばいいんじゃないかな。
166:デフォルトの名無しさん
14/03/31 14:04:39.44 Z/deP/O+.net
いきなり他の言語を使えって言われても、コンテキストを思い出せないんだよ
Excel VBAがExcel JScriptに置き換わったら、いよいよだと思うね
167:デフォルトの名無しさん
14/03/31 18:14:36.06 fvBhjMHZ.net
powershell の意味不明な文法はどこ由来なんだろう
168:デフォルトの名無しさん
14/03/31 19:19:51.23 HPrdAsyG.net
>>161-162
Member Enumerationといって、V3からコレクションの各要素のメンバーにアクセスする機能が追加されたんだよ
URLリンク(blogs.msdn.com)
169:デフォルトの名無しさん
14/03/31 19:45:07.51 2sfUKmxl.net
いちいちselectしなくても良くなったってことか
それは助かる
170:デフォルトの名無しさん
14/03/31 21:39:20.66 FlSL2ost.net
>>167
それなら、書き方が違うと思うぞ
$arr=ls
$arr.Name
はできないでしょ
$arr=(ls)
$arr.Name
なら可能だけど、
それでも
入力補完はしてくれないね。
171:デフォルトの名無しさん
14/03/31 23:13:53.29 HPrdAsyG.net
>>169
いやどちらでも通るよ?
入力補完はそりゃ利かないだろうけど
172:デフォルトの名無しさん
14/04/01 00:13:09.13 n+62zDt+.net
>>170
ごめん、通った
173:デフォルトの名無しさん
14/04/01 21:14:46.98 XUx13Ibi.net
>>167
意外だ。3まではできなかったのか。
powershellの()とか$()ってオブジェクトがそのまま却ってくると理解してて、その書き方が当たり前と思ってたわ。
174:160
14/04/02 02:37:09.60 iqksnACc.net
$arr=ls
$arr.Name
$arr.DirectoryName
$arr.FullName
Nameでファイル名、DirectoryNameでフォルダまでのフルパス、
FullNameで、ファイル名付きフルパスを取り出す
入力補完は、
$arr. で配列のメンバが、
$arr[0]. で配列中のファイル情報のメンバが表示される
175:デフォルトの名無しさん
14/04/02 03:15:22.54 DfhRYDJb.net
ps初心者におすすめの書籍やサイトありませんか?
176:デフォルトの名無しさん
14/04/02 10:47:02.26 rXi4eJBj.net
powershell in actionのセカンドエディションが何故出ないんだろう・・・
英語読めんから、日本語版でてもらいたいんだけど
177:デフォルトの名無しさん
14/04/02 15:40:49.84 mZJZP6QO.net
>>174
やはりTechNetじゃないかい
178:デフォルトの名無しさん
14/04/02 17:16:43.20 m0GxFAWI.net
powershellって、本は少ないよな
というか、読んだことない
日本語の情報も少ない
powershellはバージョンアップで結構大きく変わってるから、ネットの情報も古いのはあまり役に立たない
179:デフォルトの名無しさん
14/04/02 17:36:21.91 wdgZMuKf.net
選ばれし者のみが使うものだから安っぽい一般書籍で下々の者の目に触れさせてはならぬのだ
180:デフォルトの名無しさん
14/04/02 19
181::56:12.51 ID:Y0IuL1ul.net
182:デフォルトの名無しさん
14/04/02 20:35:42.75 OMqTUtFb.net
歯を磨くのに歯ブラシの本なんか読まないって奴だな
183:デフォルトの名無しさん
14/04/02 21:07:06.51 y1aMAgcN.net
そういえば、Excelの本も読んだことないな
184:デフォルトの名無しさん
14/04/02 21:53:15.82 m0GxFAWI.net
bashの本は結構ある
185:デフォルトの名無しさん
14/04/03 02:45:55.99 Ft/oIZi2.net
>>174
「Windows PowerShell 実践システム管理ガイド」2009初版
この本は一通り、環境設定や文法などを説明しているが、
サーバ管理者じゃなければ、あまり読む所がない
@IT 執筆者は山田 祥寛(よしひろ)
URLリンク(www.atmarkit.co.jp)
HIRO's.NET
URLリンク(hiros-dot.net)
MS TechNet スクリプトセンター
186:デフォルトの名無しさん
14/04/03 15:09:33.58 Ft/oIZi2.net
ファイル名に入っているすべての空白を、
アンダーバーに置換して、
置換したときのみ、ファイル名を変更する
#複数か所を置換。日本語もOK
$a=$str.Replace(' ','_')
#True, False
#もし、置換されていれば
if(! $a.Equals($str)){ren}
Replaceが置換できたかどうかが分からないため、
Equalsで置換前後の文字列を比べているんですが、これでいい?
Replaceが置換した文字数でも返せば、便利なのに
187:デフォルトの名無しさん
14/04/03 22:15:18.50 PIEAAVmi.net
これが最近になってerrorになるんだが。エラーメッセージは今手元に処理系がないから晒せない。すまぬ。
$ie = new-object -com InternetExplorer.Application
188:デフォルトの名無しさん
14/04/04 03:15:36.79 Y0zkgPF2.net
$ie = new-object -com InternetExplorer.Application
Win8で、動くよ
ただし、このままでは見えないから、
$ie.Visible=$true で見える
それから、$ie.Quit() で終了して、
Remove-Variable ie で変数を完全に削除する
189:デフォルトの名無しさん
14/04/04 03:25:58.26 wR4zjFJC.net
>>186
あ、動かなかった環境はwin7
190:デフォルトの名無しさん
14/04/04 03:26:28.98 wR4zjFJC.net
>>186
ieのバージョンは8
191:デフォルトの名無しさん
14/04/04 05:53:17.18 KMj82CKh.net
>>186 ので Vista (ってかWin2008srv) と IE9だと、今ちゃんとIE起動したなあ。
192:デフォルトの名無しさん
14/05/02 20:40:03.81 HFpQdt1h.net
そもそも自分でエンコーディング指定しない状態でうまくいくと思うのがおかしくね
193:デフォルトの名無しさん
14/05/10 13:27:52.37 rkawSHax.net
クラシック コマンドと PowerShell の間のエンコード設定
URLリンク(d.hatena.ne.jp)
194:デフォルトの名無しさん
14/05/17 13:01:56.04 zPk4Oowy.net
>>190
おかしくないね
195:デフォルトの名無しさん
14/05/17 13:04:18.77 zPk4Oowy.net
>>190
そもそも自分でエンコーディング指定しない状態でうまくbatは
そのまま実行できた方が便利じゃね
おかしくねってなんだよこのカス
お前のせいでこのスレ過疎ってんじゃねえかよ
俺は苦労なく適応してるスタイリッシュ糞野郎は死ねよ
196:デフォルトの名無しさん
14/05/17 13:05:13.85 zPk4Oowy.net
>>190
そもそも自分でエンコーディング指定しない状態でうまくbatも
そのまま実行できた方が便利じゃね
>>191
それがめんどいって言ってるんだけど
だからこのスレ過疎ってんだけど
197:デフォルトの名無しさん
14/05/17 13:06:51.90 zPk4Oowy.net
>>191
ドヤ顔1行レススタイリッシュでああかっこいい
これでもうまく出来ない
たとばestcmdのことだよ
やってみろごみ
198:デフォルトの名無しさん
14/05/17 13:09:30.55 zPk4Oowy.net
そもそも自分でエンコーディング指定しない状態でうまくCUIコマンドは
そのまま実行できる方が便利とおもわないほうがおかしくね
199:デフォルトの名無しさん
14/05/17 13:10:47.73 6QUaAdwh.net
そもそも自分でエンコーディング指定しない状態で動いてるCUIコマンドは
そのまま実行できた方が便利とおもわないほうがおかしくね
200:デフォルトの名無しさん
14/05/17 13:21:35.98 6QUaAdwh.net
>>191
設定してもestcmdがうまく変換できない
試してみなくても絶対できると思うこむのがおかしくね
201:デフォルトの名無しさん
14/05/17 21:10:33.02 blVZ2esz.net
こちらの質問を投稿されてから少し時間が経ちましたが、その後の状況はいかがでしょうか
とか気持ち悪いからまれ方する掲示板には絶対に書き込みしないが
ここでカスどもを叩きつぶんつ
202:デフォルトの名無しさん
14/05/17 21:25:14.42 blVZ2esz.net
単純にエンコード指定しただけではうまくいかないことがあるのは明白
試しもしないで大嘘書いてんじゃねえよクズ
203:デフォルトの名無しさん
14/05/17 23:03:47.67 blVZ2esz.net
こちらの質問を投稿されてから少し時間が経ちましたが、その後の状況はいかがでしょうか
とかいう気持ち悪いからまれ方する掲示板から出てくんな
204:デフォルトの名無しさん
14/05/21 01:04:44.83 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:デフォルトの名無しさん
14/05/21 02:18:31.24 ta57bKtc.net
標準出力のutf16leとsjisは自動判別されるがutf8は判別しない。
utf8での出力は問答無用でsjis出力される。$OutputEncoding は関係しないようだ。
.netのDiagnostics.ProcessStartInfoの StandardOutputEncodingをutf8に指定して
プロセスを作成すれば、化けずにutf8で表示できる。
utf8のファイルならば自動判別される。
Get-Contentで文字コードを指定しなくてもutf8のファイルを読み込めるし
> をしたら、化けずに正常にutf16leに変換される。
206:デフォルトの名無しさん
14/05/21 02:27:53.59 ta57bKtc.net
UTF8の標準出力は無視というより
単純にBOMBなしUTF8はスルーされるってだけの話なのか
BOMBなしUTF8は-encoding utf8すれば読めるが強制sjis変換される
BOMBがないutf8はちゃんと表示された
207:デフォルトの名無しさん
14/05/21 02:28:38.07 ta57bKtc.net
×BOMBがないutf8はちゃんと表示された
◯BOMBありのutf8はちゃんと表示された
208:デフォルトの名無しさん
14/05/21 18:11:51.04 WiuU0w7h.net
>>202
俺が言ったのは、エンコーディング指定なしで望みの形に自動で入出力される、なんて都合のいいもんのはずないだろってことだけだが
特にUTF-8が厄介なのはcmd.exeの頃からそうなんだから
209:デフォルトの名無しさん
14/05/22 15:38:40.24 /bbRYJfN.net
テキストはバイト列じゃなくて文字列として扱われる
PHPとかPtyhon2とかしか知らないと、間違う
210:デフォルトの名無しさん
14/05/30 23:45:52.42 F99LD7Fr.net
>テキストはバイト列じゃなくて文字列として扱われる
バイナリとして比較するということを言いたいのかな?
211:デフォルトの名無しさん
14/05/31 01:17:39.96 HDDKJJTo.net
逆だろ
212:デフォルトの名無しさん
14/05/31 01:45:04.55 tHdAdTRr.net
>Diagnostics.ProcessStartInfoのStandardOutputEncodingを設定すれば
>ナマのutf-8を吐いてくれる。
これは勘違いで誤り。
utf-8をsjisに変換してくれる、が正しい。cmd.exeでも同じ挙動。
そもそも適切なエンコーディング指定する方法がないのだから
>そもそも自分でエンコーディング指定しない状態でうまくいくと思うのがおかしくね
で軽々しく済む話ではないのは明らか
213:デフォルトの名無しさん
14/05/31 01:48:59.81 YDFuTMoW.net
むかしは、シフトJISのテキストをバイト列として(〝バイナリとして〟)処理した。
(当初からJavaは、テキストを文字列として処理してきた)
いまは、Perl, Python, Rubyは、文字列としてテキストを処理できる。
スクリプトがどの文字コードでかかれてるか明記。
出力するとき、内部の文字コードから表示の文字コードに変換。
214:デフォルトの名無しさん
14/05/31 02:00:38.69 tHdAdTRr.net
ちょっとエンコーディング指定すればいいなんて手間じゃねえし
なめてんだろ
215:デフォルトの名無しさん
14/05/31 12:22:25.77 LqLiNHuI.net
>>190本人が、何もしなくてもUTF-8形式を適切に処理してくれるって考えは甘いってことを理解してりゃそれでいいよ
216:デフォルトの名無しさん
14/06/02 22:17:32.05 iXPDpkrB.net
>>213
BOM付きUTF8ならば適切に処理されるんだからややこしいのであって
考えが甘いとかそういうことじゃないんだよ
こうやって精神論にすり替えて叩いてくる
どうせわんくまのバカどもが食いついてんだろ
お前らいつも参考にならないんじゃアホ
217:デフォルトの名無しさん
14/06/02 22:30:48.29 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:デフォルトの名無しさん
14/06/02 22:34:16.22 iXPDpkrB.net
>>206
そもそも適切なエンコーディング指定する方法がないのだから
>そもそも自分でエンコーディング指定しない状態でうまくいくと思うのがおかしくね
で軽々しく済む話ではないのは明らか
cmd.exeではこんなビット欠けは起きない
219:デフォルトの名無しさん
14/06/02 22:37:17.51 iXPDpkrB.net
>>206
コマンドの標準出力にはエンコード指定する方法なんかないので
大げさなラッパを作る必要がある
cmd.exeの頃は勝手にutf16leに変換されるなんてことなかったし
変換し直すだけでトラブルはなかった
分かったかわんくまバカ
220:デフォルトの名無しさん
14/06/02 22:43:53.50 iXPDpkrB.net
echoや>の出力がUTF-16LEなのはハマるな
もともとUTF-8で出力するプログラムとかなんかおかしくなるし
221:デフォルトの名無しさん
14/06/02 22:46:54.35 iXPDpkrB.net
じゃあ
echoや>の出力がUTF-16LE
である利点を語ってくれ
標準出力unicode化は今まで全く力を入れてこなかったことので悲願でも何でもない
それ以外で
222:デフォルトの名無しさん
14/06/02 22:53:46.33 iXPDpkrB.net
>>191
正直そこらへんのブログの落書き情報よりつっこんだ話してるからね
このスレ読めばUTF8関連のトラブルは解決するだろう
もちろん俺だけのおかげであって
わんくまやムタや魔界仮面(宇宙仮面ではない)の出番はなかった
わんくまが役に立ったことなんかないがな
223:デフォルトの名無しさん
14/06/03 00:46:33.05 zVTgVwHZ.net
利点も糞も、echo(write-output)は、生のオブジェクトを扱うことになるわけで、
つまりは、.NET仕様の根幹だから今更変えようがないでしょ。
従って、文字コード変換とかは受け取る側が全部面倒見る必要がある。
が、今どきUTF-8くらい標準(共通パラメータ?)で何とかしろよ、っていう点には同意だが。
224:デフォルトの名無しさん
14/06/03 00:54:23.68 Y/pEIVnr.net
エンコーディングを指定すればいいだろ
225:デフォルトの名無しさん
14/06/04 20:44:17.78 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:デフォルトの名無しさん
14/06/05 00:54:18.00 0UtGsb3y.net
>>223
値を受け付けるパラメータの数が1つだけだとこういう挙動になるのかと思ったけど
Write-Hostでも同じようにエラーにならないな
227:デフォルトの名無しさん
14/06/06 20:42:25.77 SJO4baaV.net
>>214-216
いやお前は必要な情報を提示したつもりだったのかも知れんが、
>>190のレスだけじゃ一般論として文字コード意識しないと駄目だろって話にしかならない
228:デフォルトの名無しさん
14/06/08 09:45:09.57 EYTmrCp1.net
ここで聞いて良いのか分からないけど分かる方居たら教えて下さい。
Get-WmiObject -ComputerName IP -Credential $cre ~としてサーバの情報取って来ようとしてるんですが、UserAdministrator Passなし で認証のダイアログ等を出さずに実行するだけで取得する方法はありますか?
パスワードの設定がされていればそのまま取ってこれるんですが、パスなしの場合は無理でしょうか。ちなみにドメインには参加していません。
229:デフォルトの名無しさん
14/06/08 15:47:34.27 sw1PudVp.net
WinRMを設定して使う。
SSHみたいにリモートでコマンド実行できる様になる。
230:デフォルトの名無しさん
14/06/09 00:18:43.04 5ZVLqxF5.net
>>227
ちょっと調べてみた感じサーバ側の設定が必要なんですね
まだ入社したばかりで、大量にあるサーバを全手動でチェックしてるのでそこをなんとかしようと思って調べてました
お上にお伺い立てないといけませんが、もうちょっと調べて行けそうなら考えてみます
ありがとうございます
231:デフォルトの名無しさん
14/06/15 12:59:24.56 7N5YxzDD.net
#file1.txt
hoge
fuga
$a = gc file1.txt
$a[0] #=> hoge
---
#file2.txt
hoge
$a = gc file2.txt
$a[0] #=> h
gc file2.txt | %{$_} #=> hoge
ログの集計で軽く嵌ったわ。
柔軟といえば柔軟なんだけど。
232:デフォルトの名無しさん
14/06/20 15:35:56.81 HoBg26Gr.net
バージョン2.0使ってるけどConvertfrom-Csvで変換後にある列がブランクの行をWhereで抽出して表示させようとしたんだけど
他の列は「-eq ""」でいいんだけど最終列だけは「-eq $null」にしないと抽出できないね。
列ごとに書き方変えるの面倒なのでIsNullOrEmpty使うようにしたけどバグに近いレベルの仕様だな。
上位バージョンだと改善されてるのかな?
233:デフォルトの名無しさん
14/06/20 16:53:37.72 wHzCGsbi.net
>>230
IsNullOrEmpty
使うものですよ
234:デフォルトの名無しさん
14/06/20 17:49:45.80 1hp3pFc2.net
CSV自体が欠陥規格だから、変換後のデータをよーく検証しないのが悪い。
235:デフォルトの名無しさん
14/06/21 09:09:56.44 OJ/lzG/j.net
Windows PowerShell 伊瀬
236:デフォルトの名無しさん
14/06/21 10:30:10.12 CuxdLLeL.net
伊瀬って人の名前かと思ったわ
237:デフォルトの名無しさん
14/06/21 11:10:30.86 5Gha9VrW.net
× 伊瀬
○ 伊勢
238:デフォルトの名無しさん
14/06/21 14:55:17.30 hhcyEr91.net
>>232
まあ表示させようとしたのはタブ区切りファイルなんだけどね。(「-delimiter `t」を指定)
ちなみにタブ区切りファイルの全行の末尾にタブ1個追加すると最終列も「-eq ""」で抽出出来た。
余談だけどOutGridViewの表示内容をコピーすると全行の末尾に余分なタブが付いてるのもこれ絡みに理由なんだろうか…
239:デフォルトの名無しさん
14/06/26 07:18:34.55 W91RvMJw.net
>>236
末尾のタブの有無じゃなくて
もしかして、ファイルの最後に改行が入って無いんじゃない?
240:デフォルトの名無しさん
14/08/30 05:31:37.22 86Qko6ZX.net
これはWindowsの内部情報を操る部分にだけ使い、
一般的なUI処理・データ処理はバッチファイルや
PythonやRubyなどを併用した方が良さそうだな
コマンド名が冗長でついていけない
241:デフォルトの名無しさん
14/08/31 08:59:00.04 Fxu9rxFN.net
他のLL覚えてて使用できる環境ならそれで十分だとは思うが
さすがにバッチはないわー・・・
242:デフォルトの名無しさん
14/09/02 09:24:06.69 uW2FT7+h.net
>>238
ls,cd,cpなど、UNIX系の短いコマンド名も使える
243:デフォルトの名無しさん
14/09/02 12:39:30.46 Ez2bfEzC.net
>>238
エイリアスあるだろ
244:デフォルトの名無しさん
14/09/02 12:56:46.77 rTXrUpAw.net
コマンドの命名規則が統一されてるから、細かく覚えてなくても、getcommandとタブの補完で済む
245:デフォルトの名無しさん
14/09/04 21:44:10.03 tOnhAyW6.net
Windows Server 2012 R2 でFPTサーバー機能インストール後
下記コマンドでサイト追加すると物理パスが設定されない
Import-Module WebAdministration
New-WebFtpSite -Name "●●●" -PhysicalPath "パス文字列"
administrator権限で実行してるし、GUIで設定すると問題なくできる
パス文字列をダブルクォテーション無しやシングルクォテーションで囲ったりも試したがダメだった
誰か助けてくれー
246:デフォルトの名無しさん
14/09/04 21:53:03.90 uNyEwEdx.net
>>243
MSのサポートに聞けばいいじゃん
権利持ってるんでしょ
247:デフォルトの名無しさん
14/09/05 13:32:14.07 TJ9WELPZ.net
入力したコマンドとエラーメッセージを、正確に書け
パスは相対・絶対?ドライブ名は?
カレントディレクトリはどこにある?
248:デフォルトの名無しさん
14/09/05 19:56:46.63 AtOrYG8X.net
>>244
ライセンスは会社で買ってるの
マイクロソフトのサポートページからWindows Server 2012 で
カテゴリでpowershell選んでいくと「支払い方法」とか出てきてひよってしまった
もうちょい頑張ってダメなら聞いてみる
>>245
コマンドは下記
Import-Module WebAdministration
New-WebFtpSite -Name "test" -Port 21 -PhysicalPath "P:\test"
エラーメッセージは表示されず、物理パスが空欄でFTPサイトが追加されてる
パスは絶対、ドライブ名はPドライブがありtestフォルダも作成してる
存在しないパスを指定した場合はエラーになる
カレントディレクトリはC:\Users\Administratorだと思う
(AdministratorでログインしてそのままPowerShell実行 いま職場じゃないので正確じゃなくてすまん)
Windows7でも試してみたが同じ状態になる
249:デフォルトの名無しさん
14/09/05 23:18:10.66 TJ9WELPZ.net
PowerShellと同じフォルダにある、powershell_ise で、
-WhatIf オプションを付けて実行してみたら?
このオプションは、実際には実行されず、
何が起こるか表示するだけ
250:デフォルトの名無しさん
14/09/06 00:33:52.22 lo5BUZzT.net
この程度でプレミア使ってたら他で使えなくなるだろw
251:デフォルトの名無しさん
14/09/25 18:53:25.00 3nQex4gX.net
power shellは、ファイルの入・出力の真似事のようなことはできても、
まともにプログラムを作るのは無理だな。
252:デフォルトの名無しさん
14/09/25 23:29:14.42 lRwJZ1gU.net
そりゃ言語部分は、インタプリタの
スクリプトだから、目的が違うよ。
組み合わせれば、いいものもできるが
それだけじゃできても、遅くて無理。
253:デフォルトの名無しさん
14/09/26 11:58:07.40 TbsD84QQ.net
DSCとかいうの話題出てないようだけどあれは何なの
254:デフォルトの名無しさん
14/09/27 14:32:34.67 W5v3g7cK.net
>>251
URLリンク(www.buildinsider.net)
255:デフォルトの名無しさん
14/09/29 14:54:02.15 /M46FFaB.net
バッチはこんなのまでバッチでやるなんて・・とネタで盛り上がりやすかったんだよな
wshになるとCOM化オブジェクト化+本格スクリプト使用でできて当然、はしゃぐことはなくなっていった
PowerShellはさらに進化し玄人受けがすごく良いが登場時以降は小康状態へ
もっと新規に触れてほしいね
256:デフォルトの名無しさん
14/09/29 14:59:20.82 /M46FFaB.net
PowerShellなら、様々なファイルの属性を取り出せる
Nameでファイル名
DirectoryNameで、フォルダまでのフルパス
FullNameで、ファイル名付きフルパスを取り出す
(FullName = DirectoryName + Name)
ファイル名について、
Extensionで、.txt などの拡張子の部分
BaseNameで、Extensionを除いた部分
(Name = BaseName + Extension)
.NETのクラスの説明を参照
257:デフォルトの名無しさん
14/09/29 20:56:14.73 hnxt5DQK.net
>>252
アホだろお前
で使ってんのか?
258:デフォルトの名無しさん
14/10/03 00:23:14.30 pHiC8ZbM.net
何怒ってんの
259:デフォルトの名無しさん
14/10/03 23:08:21.66 HQ6EBXmx.net
ほんとだね。何か言いたいことがあるのかな?
260:デフォルトの名無しさん
14/10/04 23:13:26.07 zSlTHuRa.net
powershellから外部コマンドを実行する場合の方法で相談にのってください。
任意個数の引数を指定して外部コマンドを実行するにはどうすればよいでしょうか?
外部プログラム user.exe があるとして、それらに対する引数が任意数あるとします。
$command_line = "user"
として
ループをまわして内部で各種条件判定を行い条件に合致した場合は
$command_line += "-commnad-hoge"
のように対応したコマンドを配列に追加します。
最終的には以下のように設定した状態と同様になります。
$command_line = "user","-command-hoge","-command-fuga","-command-moge"
これをコマンドとして実行したいのですが
$command_line.split()
& $command_line
これだとうまくいきませんでした。
invoke-command -scriptblock { $command_line }
もダメでした。
引数個数が決まっているなら、 -ArgumentListで対応できるのですが・・・。
こういった場合どうすれば良いでしょうか?
261:259
14/10/04 23:15:01.58 zSlTHuRa.net
訂正
$command_line.split()
↑の行は必要ないです。
262:デフォルトの名無しさん
14/10/05 10:33:19.45 mngpVki9.net
$program = "user"
$arguments = @()
$arguments += "-command-hoge"
$arguments += "-command-fuga"
$arguments += "-command-moge"
& $program $arguments
263:デフォルトの名無しさん
14/10/05 16:24:58.31 +/TDLXSL.net
>>260
ありがとうございます。
いけました。
264:デフォルトの名無しさん
14/10/05 19:01:10.47 +/TDLXSL.net
もう一つ質問です。
あるディレクトリが存在していたらそれを削除して新たに生成するという処理を書いているのですが
if ( Test-Path $new_dir )
{
Remove-Item -path $new_dir -recurse -force
}
New-Item -name $new_dir -type directory
と記述したところ、既存の$new_dirが存在していてかつ、中身が少数のファイル数だった場合は問題なく動作しました。
しかし、小さいサイズのファイルが大量にあり削除に時間がかかるような$new_dirの場合
New-Itemが実行される際にエラーになります。
New-Itemが実行される時点でまだ、$new_dirが残っているらしく、すでにディレクトリあるからエラー、といわれてしまいます。
実際にディレクトリをみにいくとすでに消えています。
動作としては、 Remove-Itemの実行完了を待たずにNew-Itemが実行されているような印象でした。
Remove-Itemのオプションで-waitとかもないですし、
これを解消にするにはどうしたら良いでしょうか?
265:デフォルトの名無しさん
14/10/05 19:42:07.63 oF4PxXkb.net
それはPowerShell固有の問題ではなく.NETの問題ぽいんだよね
URLリンク(social.msdn.microsoft.com)
URLリンク(stackoverflow.com)
昔これに遭遇したときどうしたかなと調べてみたらフォルダそのものは削除せずにその配下を削除するというコードでお茶を濁してあった
266:デフォルトの名無しさん
14/10/05 19:54:27.47 +/TDLXSL.net
>>263
> それはPowerShell固有の問題ではなく.NETの問題ぽいんだよね
うーん、いろいろ深刻なんですね。
割とよくある処理だとおもうのですがw
> 昔これに遭遇したときどうしたかなと調べてみたらフォルダそのものは削除せずにその配下を削除するというコードでお茶を濁してあった
とりあえず、URLを参考にお茶を濁してみます。
ありがとうございました。
267:デフォルトの名無しさん
14/10/05 20:52:20.32 x1UpicBb.net
削除に先立ってそのフォルダをリネームしてしまうのはどうかね
268:デフォルトの名無しさん
14/10/05 23:59:21.00 +/TDLXSL.net
>>265
> 削除に先立ってそのフォルダをリネームしてしまうのはどうかね
リネーム先の名前がかぶってるかとかチェックするのがだるそうなので
簡略化してかくと↓みたいにして対処しました。
とりあえずこれで問題なくいけてます。
こういうポーリング処理は見苦しくてあまりすきじゃないんですがしょーがないです。
同期オブジェクトでももらえるなら、もらって終わったら起こしてもらうほうが好きですね。
remove-item $path
while ( test-path $path )
{
start-sleep -m 500
}
new-item $path
269:デフォルトの名無しさん
14/10/06 02:50:23.88 q0WbIU2v.net
複数のやり方から自分で選択したのにしょーがないもないもんだ
270:デフォルトの名無しさん
14/10/07 00:03:39.16 j618B6Sr.net
$a = remove-item $path とか remove-item $path > $null とかかね
いや試してないけど
271:デフォルトの名無しさん
14/10/07 01:41:24.38 WYpWzpgi.net
>>263
Windows本体の問題じゃないの?
272:デフォルトの名無しさん
14/10/15 02:54:21.15 +H/2h/ar.net
> $7zip="C:\Program Files\7-Zip\7z.exe"
> dir *.zip | % {&$7zip x $_ -y "-o""$($_.Directoryname)"""}
やっていること
7z.exeでそのディレクトリにあるすべてのzipファイルを、
新たにディレクトリを作らず、その場にすべてのファイルを解凍
同名ファイルは上書き。7z.exeのパスは通していない
ポイント
・文字列のパスの先頭に&をつけると実行。変数でも可
・プロセスに渡す"は""。`でエスケープかな?と思うのは間違い
・dir=gci。gciはファイル名ではなくてファイルオブジェクトが渡るので重いっちゃ重い
がそのおかげでファイルオブジェクトのメソッドが使えて便利
・$_はパイプの現在の値。。for /fだと%iとか指定してたあれ。ここではファイルオブジェクト
・メソッドは$()でかこむと値を取り込める。""の中は展開される
273:デフォルトの名無しさん
14/10/18 11:24:48.22 UrxAWZhY.net
Outlookのフォルダ構成を出力するのってどんなコマンドレットですか?
274:デフォルトの名無しさん
14/10/25 12:09:13.69 CSyeBZR0.net
企業の部門エンドユーザーだが、内製での業務効率化に使えるかなあと思って勉強している
古臭いUNIXシェルに、.netオブジェクトと現代的なスクリプト言語の機能を無理矢理
詰め込んだような感じ。記号やオブション指定が多く、かなり取っつきにくい印象あり
これの想定ユーザーはエンドユーザーではなく開発技術者なのかな?
275:デフォルトの名無しさん
14/10/25 21:48:14.17 oo9NyNnA.net
UNIXシェルを遥かに超えてるが故に?普及してないな。
デフォでセキュアなのも原因か。
276:デフォルトの名無しさん
14/10/25 21:56:37.49 wMFwKrRB.net
UNIXみたいにアプリがコマンド連携できないから
277:デフォルトの名無しさん
14/10/25 22:47:35.24 CSyeBZR0.net
コマンドの公式エイリアスが多すぎるのも頭の痛いところ
get-childitem・gci・dir・lsなどと複数あり、大文字・小文字も自由となれば
人により表記のブレが大きくなり、コードの共有に難が出てくる
それならバッチファイルで済ませたくなるのが人情
278:デフォルトの名無しさん
14/10/30 08:43:46.53 h9RzQ4Cj.net
>>275
エイリアスは、
他の環境での利用者を考えた結果だろうから
バッチファイルで済ますという考えがあるなら
エイリアスはdos表記利用だけ、あるいはエイリアス禁止に
してしまう手があるともいえる。
279:デフォルトの名無しさん
14/10/30 08:48:36.56 h9RzQ4Cj.net
>>272
もともとがサーバー管理者向けにできたもので、
その利用範囲が拡大してきたということでしょ。
エンドユーザーの想定は、少なくとも当初は無いと思うけど。
>>274
その意味が分かんない。PowerShellの方が連携しやすいと
いう認識あるんだけど、思っている意味が違うのかな?
280:デフォルトの名無しさん
14/10/30 09:14:10.61 eeECNXMU.net
>>277
UNIXみたいなCUIアプリはパイプと標準入出力で連携できるけど
windowsは基本GUIアプリばかりなので連携できない
もしかして何かあるのなら無知な私に教えてくださいませ
281:デフォルトの名無しさん
14/10/30 11:12:43.92 P7z1oqc0.net
Powershell は Powershell で閉じてるよねえ
grep したり find したりとか自前でやるあたりやっぱりシェルっていうより言語環境に近い
282:デフォルトの名無しさん
14/10/30 13:23:12.07 ApVpmuLz.net
>>278
>基本GUIアプリばかりなので
自身で主に使っているのがそういう環境だ
ということじゃないかな
283:デフォルトの名無しさん
14/10/30 15:13:41.75 n5jf4ckH.net
旧来のシェルは単にテキスト吐き出すだけだからね、
それ以上でも以下でもない。
284:デフォルトの名無しさん
14/10/30 22:03:57.70 7iNuGGQG.net
zshやbashは組み込みコマンドだけじゃ何も出来ないからな
awkとかperlのワンライナーとか使い出したら、それはもうシェルスクリプトって次元じゃないだろう
285:デフォルトの名無しさん
14/10/30 22:22:21.39 tllqb13A.net
>>278
本業のWindows Server系ではまずPowerShellコマンドレットで機能実装してGUIの皮を被せ
GUI操作内容を後でスクリプトとして吐き出したりできるようにしているよ
286:デフォルトの名無しさん
14/10/30 22:24:49.66 k8NiVNHr.net
とはいえperlつかっても結局テキスト吐き出すだけだし
アプリプログラムとしたら、めちゃくちゃ遅いので
その面ではメリットのある利用はシェル替わりにしかならなから
弱ったもんだ。
287:デフォルトの名無しさん
14/10/30 22:32:50.58 k8NiVNHr.net
>>278
そもそも、Serverでの管理用に出てきたのに、基本GUIなんて
こと有り得ないでしょう。ちょっと勘違いしてるかな。
288:デフォルトの名無しさん
14/10/30 22:42:32.77 aZFM4Dkl.net
>>278
GUIしかないアプリ間で連携させたいというなら
そもそもバッチファイルだろうがUNIXだろうが無理な話で
Windowsだってサーバー管理はコマンドラインツールでどうにかしてきたし、
コマンドラインツールを勉強せずに連携とか言ってるなら、そもそも思想がおかしい。
PowerShellになると既存のコマンドはほとんど置き換えられてしまうけど
色々なコマンドのオプション指定方法がある程度共通化されて、学習コストは下がってきてるし、
データの連携もやりやすくなってるから、今までの経験は置いといて覚えなおすのが良いと思う。
289:デフォルトの名無しさん
14/10/30 22:45:43.43 2y8PDjyu.net
>>283
スレ違いかもしれないけど、PowerShellのGUIって何で作るの?
290:デフォルトの名無しさん
14/10/30 22:47:51.51 k8NiVNHr.net
WPFでもWinFormでもSiverlightでも。
めちゃくちゃ簡単で自由度高いよ。
291:デフォルトの名無しさん
14/10/30 22:55:20.17 IM+QeQcX.net
読みづらいんだけど。規約とか工夫してることある?
292:デフォルトの名無しさん
14/10/30 22:57:13.10 k8NiVNHr.net
>>289
私の場合は、省略形(エイリアス)は使わないようにしてる。
自分だけならいいんだけどね。
293:デフォルトの名無しさん
14/10/30 22:58:03.04 tllqb13A.net
>>287
アプリの機能をコマンドレットとして実装してるってだけで
別にPowerShellでGUIまで実装してるわけじゃないよ?
294:デフォルトの名無しさん
14/10/30 23:05:47.26 P7z1oqc0.net
サーバー管理系以外のアプリもコマンドレット実装してたりするもんなの?
295:デフォルトの名無しさん
14/10/30 23:12:25.65 2y8PDjyu.net
>>291
自分でつかうぶんにはコンソールから使えばいいんだけど、他のひとにつかってもらうときにはGUIがあったらいいなー何て思ってるのでつい反応してしまいましたがな。。。。
296:デフォルトの名無しさん
14/10/30 23:13:10.90 k8NiVNHr.net
まだそんなにないでしょうね。
わたしは作ってるけど。
米国ではツールとしてだいぶでてきてる。
聞いていることの回答になっているかはわからないけど。
297:295
14/10/30 23:15:39.82 k8NiVNHr.net
>>294 は >>292 への回答でした
298:デフォルトの名無しさん
14/10/31 04:19:42.55 6uOYsRYD.net
学習中だが、コードが見にくいですなあ
キャストも添字参照もオブジェクトのメンバアクセスも[]を使うので
[]だらけになってしまいがち。あと$・@・{}などの記号が多い印象
シンプルなPythonから来たのでかなりつらい
299:デフォルトの名無しさん
14/10/31 06:10:03.53 5RNGAkQP.net
旧来のシェルを知ってると馴染みぶかくていい
300:デフォルトの名無しさん
14/10/31 07:03:03.31 rr8q/oyJ.net
記号が多い言語と言えば
静かな湖畔の森の陰から
もう起きちゃいかがとカッコウがなく
カッコウ カッコウ カッコウ カッコウ カッコウ
Lispの歌でした
301:デフォルトの名無しさん
14/10/31 09:19:46.12 th/TRSyt.net
記号の種類が多いのは、何と言ってもAPL
これに種類が勝る言語はないだろう。
作った本人がわからなくなるという話は有名
302:デフォルトの名無しさん
14/11/01 07:38:04.23 zr+1nUxZ.net
型を指定できる時点で断然いい
Pythonはワンライナーが致命的に向かないので、Perlやawkがなくなる事はないだろう
303:デフォルトの名無しさん
14/11/01 12:54:29.11 DNMo+a9Y.net
>>299
そいえば、APLはワンライナーにチャレンジしたがる人の宝庫ですね。
その代り
>作った本人がわからなくなるという話は有名
そのとおり
304:デフォルトの名無しさん
14/11/01 13:02:20.00 B4tit/6m.net
全ての変数名に$が付くのは、自分にはタイピングの負荷が高いなあ
小指が攣りそうになる
UNIXのBシェルだっけ?あれは確か変数の参照の時だけ$が付いたと記憶している
そっくり真似するのはアレだから、アレンジしてどんな時も付けるようにしたのか?
305:デフォルトの名無しさん
14/11/01 13:37:11.72 awheomXH.net
直交性の話じゃないの
全部付けるにしたほうが構文解析も楽だろうし
306:デフォルトの名無しさん
14/11/01 15:14:56.05 tDHeWf5U.net
シェルで$使わないのって知らないわ
307:デフォルトの名無しさん
14/11/02 05:19:32.65 KOUMXij0.net
由緒正しいシェルスクリプトでは$は参照用の記号だよ。
$a=aなんてやったら$aの中の変数にaが入っちゃう。
なんでもかんでも$つければいいって、バカのやることだよ。
308:デフォルトの名無しさん
14/11/02 07:37:13.70 3XDfxtRF.net
=の隣にスペース置くなとか、古いシェルは罠だらけだよな
配列とかパラメーター展開も意味不明な構文暗記させられるし
PowerShellは何もかも洗練されてる
309:デフォルトの名無しさん
14/11/02 09:27:10.54 L9JlfI9E.net
UNIXの場合は、初期のころツールがほんと少なくって、シェルに頼るしか
なかったし、使うのもシステム関係者と一部研究者が多かったので
それでも、どうにかなったという感じだったな。
私の周りはSASを使っていたのでUNIXでもシェルを使う場面はほぼなく
開発できたが、他のツール使ってる部門ではジェル必須(だらけ)だっな。
310:デフォルトの名無しさん
14/11/02 10:21:33.46 +FBbeC+X.net
ジェル必須とかスタイリッシュな職場だったんだね
311:デフォルトの名無しさん
14/11/02 10:32:03.37 7/ZQZRkL.net
まあ言い方次第だね、しかたなくシェルだったんだけどね。
開発効率メチャクチャわるくて、私たちの1/10くらいの進度だった。
シェルだけじゃすまないからね。
その時代と比べたら、今は雲泥の差だ。
312:デフォルトの名無しさん
14/11/02 12:36:24.05 +FBbeC+X.net
いや、誤字を茶化しただけだから・・
313:デフォルトの名無しさん
14/11/02 12:40:11.34 FPvqJpqA.net
自分で解説するのどんな気持ち? ねえどんな気持ち? (AA略
314:デフォルトの名無しさん
14/11/02 12:59:05.99 fLE2zYfa.net
最近つかいはじめたけど[ ]の扱いがうざすぎる
315:デフォルトの名無しさん
14/11/02 13:08:02.66 0KDQawZd.net
日本語キーボードなら ( ) より入力楽じゃん
他の言語の流儀で通そうとすると使用頻度増えるかもね
たかがコマンド実行環境、という認識で使ってればほとんど出番はない
316:デフォルトの名無しさん
14/11/02 13:18:15.72 8HCUuVfe.net
[ ] は、 あ~確かや
317:デフォルトの名無しさん
14/11/02 15:29:53.62 fLE2zYfa.net
拡張子の違う複数のファイルがあって
[a].a
[a].b
[a].c
次のような処理を書いたんですけど
$file = "[a].a"
get-childitem $file.replace(".a","*").replace("[","````[")
なんかスマートじゃない気がしてもっと良い書き方はありますか?
-literalpathをつかうとワイルドカードは使えなくなるみたいですし
318:デフォルトの名無しさん
14/11/02 16:18:05.96 0KDQawZd.net
ああワイルドカードの話ね、-filterパラメータ使うと楽だよ、フルパス指定はできないけど
ls -filter [?].txt
319:デフォルトの名無しさん
14/11/02 16:20:11.32 0KDQawZd.net
逆だった
ls -filter [a].?
320:デフォルトの名無しさん
14/11/02 16:50:32.68 fLE2zYfa.net
>>316-317
ありがとうございます
すいませんもう一ついいですか
moveの場合だと次のようにしたらfilter関係無くカレントディレクトリの全ファイルマッチしてしまうんですがどうすればよいでしょうか
move-item -filter [a].? .\* .\dest\
321:デフォルトの名無しさん
14/11/02 17:04:23.84 0KDQawZd.net
なんだろね、Copy-Itemならちゃんと絞ってくれるけど
基本列挙は ls に任せてファイル操作系コマンドは宛先指定だけにした方がいいよ
322:デフォルトの名無しさん
14/11/03 03:00:35.27 TAxV/Jyl.net
$arr=ls
foreach($f in $arr){
コマンド
}
一旦、該当するファイルを、配列に入れて、
その配列から、1つずつ取り出しながら処理する
323:デフォルトの名無しさん
14/11/03 19:49:56.02 qlYoK+bJ.net
win7x64のデフォで入ってるpowershell(バージョン2.0?)でぐぐって出てくる
windows.form使うサンプルが軒並み動かないんだけどどうなっとんの
例えばこれ
URLリンク(technet.microsoft.com)
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape")
{$objForm.Close()}})
の行でいきなりプロセスが消える
なんか足りてないの?
せめてエラー吐くなりして欲しいな
324:デフォルトの名無しさん
14/11/03 20:02:23.21 gOXM5TDK.net
今日ハマったこと
.replace("hoge", "hage") だと正規表現が使えないけど
-replace "hoge", "hage だと正規表現が使える
325:デフォルトの名無しさん
14/11/03 20:04:01.88 3+1wQ0JU.net
STAオプションでで起動してないからでねーの。
326:デフォルトの名無しさん
14/11/04 03:25:40.87 30WYsMeZ.net
このコマンドで、バージョンがわかる
$PSVersionTable
PSVersion 3
CLRVersion (.net) 4
BuildVersion 6.2
PowerShellと同じフォルダにある、
PowerShell_ise を使えば、デバッグしやすい
-WhatIf を付けて実行すれば、実際には実行せずに、
何が起こるか表示してくれる
327:デフォルトの名無しさん
14/11/04 05:41:24.19 30WYsMeZ.net
>>321
なぜ英語のサイトを見るの?
わかりやすい日本語のサイトは無いの?
.NETの、system.windows.forms - Form クラス
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
Form.CancelButton プロパティ
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
328:デフォルトの名無しさん
14/11/04 08:46:27.82 eLjF+jjJ.net
>>321
ためしてみたけど、
おれは、そのままで動くよ。
Win7 64bit 環境
329:53
14/11/04 08:47:20.12 5vxSHexS.net
Python 3.4.2 を入れてみた
コマンドラインで実行。
スレリンク(tech板:926番)
1秒間のカウント数/計算方法/時間取得方法
190442 i+=1 datetime.datetime.today().second
179990 inc(i) 上に同じ
968082 i+=1 int(time.perf_counter())
752263 inc(i) 上に同じ
関数呼び出しでの低下が小さく優秀だがLuaはそれ以上か。
330:327
14/11/04 08:50:19.00 eLjF+jjJ.net
あ、書き忘れ
PowerShellのバージョンは V3.0
331:53
14/11/04 18:47:12.50 5vxSHexS.net
ループに入るタイミングを間違えてたんでやり直した。
桁が一つ違ってた。
数値がそれなりだったからずれてるのに気が付かなかった。
185010 i+=1 datetime.datetime.today().second
173615 inc(i) 上に同じ
1372280 i+=1 int(time.perf_counter())
1050301 inc(i) 上に同じ
332:デフォルトの名無しさん
14/11/07 23:04:07.78 a8wUtjf+.net
>>319-320
やっとわかりました
こうやればいいんですね
get-childitem -filter [a].? | move-item -destination .\dest\
パイプの使い方がUNIXと違って理解したらすんなり解決しました
333:デフォルトの名無しさん
14/11/07 23:32:54.68 JlZS/IBt.net
ずっと悩んでたんかいw
聞いてくれてよかったんに
334:デフォルトの名無しさん
14/11/08 16:13:47.29 LrfZTEX2.net
>>331
いや一応目的は達成してたので保留にしてただけで
パイプの使い方を知ったら解決したってだけです
ちなみに今日もハマってしまったことがあるんですけど
foreachがforeach-objectのエイリアスだと思ってたら別物で
foreach-objectはbreakが使えなかった
335:デフォルトの名無しさん
14/11/10 18:28:50.51 y2XAPBpw.net
foreachの件は、以前から、ちがうよ~って
結構いわれてますね。
336:デフォルトの名無しさん
14/11/10 21:45:21.91 NuItsKjt.net
高嶋の演技いいね
337:デフォルトの名無しさん
14/11/11 04:02:01.76 g7KV1ReX.net
>>330-333
パイプで受け取ったオブジェクトを表すには、
'$_'という自動変数を使う
Get-Variable で自動変数の一覧を表示できる
ls -Directory | ForEach-Object {$_.Name}
338:デフォルトの名無しさん
14/11/11 21:03:21.52 G70pNtNA.net
powershell2.0でモードレスダイアログ作ってるんですが
表示したばかりの状態でESCでキャンセル動作、
Enterでデフォルトボタン押下動作にするにはどうしたらいいんでしょうか
MSとかのサンプルにはそういうのが見つかりませんでした
VBとかだとこんなの当たり前だったのに情報源が乏しくて厳しいです
339:326
14/11/12 08:49:13.77 sOXRgmSx.net
>>325 を見て
.NETのFormクラスのプロパティ
AcceptButton → Enter
CancelButton → Esc
このFormクラスの一番下の方に、C#,C++,VBのサンプルがある
このコマンドで、System.Windows.Forms.dll
がロードされているか確認して
[System.AppDomain]::CurrentDomain.GetAssemblies() |
Where-Object {$_ -match "form"} | ft -Wrap
文字列が長いので、ft -Wrapで折り返して、表示する
Format-Table (ft),ft -Autosize
Format-List (fl)など色々ある
もし、ロードされていないのなら、このコマンドでロードして
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
340:デフォルトの名無しさん
14/11/12 21:49:16.87 ngdm2RX5.net
>>337
できました!
ありがとうございました
しかしこれって適当な.NET系言語と並行で覚えた方がよさそうですね…
341:デフォルトの名無しさん
14/11/26 00:43:41.05 g3+x1KG0.net
VB.netがあるじゃない
まさかあの噂でしか聞いたことがないVB6のことか~
342:デフォルトの名無しさん
14/12/04 08:25:18.27 ce/wf1ga.net
xcopyは古そうなので、robocopyを使おうと思ったが、
Win8で、robocopyで、フォルダを丸ごと再帰的に、
すべての更新されたファイルと、
新しく作られたファイルのみをコピーしたい
(ショートカットはコピーしない)
robocopyのオプションが複雑すぎて、わからないw
どう書けばよい?
343:デフォルトの名無しさん
14/12/04 09:08:49.28 oJkFYkSJ.net
>>340
ここはPowerShellのスレなんで他で聞いてね
344:デフォルトの名無しさん
14/12/04 18:42:37.00 IpfKGnoS.net
>>340
日本語で書いてあるから読めば分かる。
読んで分からなければ動かせば分かる。
/MIR オプション無けりゃ失敗しても被害は少ないw
345:デフォルトの名無しさん
14/12/05 20