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

263 名前:デフォルトの名無しさん mailto:sage [2014/10/05(日) 16:24:58.31 ID:+/TDLXSL.net]
>>260
ありがとうございます。
いけました。

264 名前:デフォルトの名無しさん mailto:sage [2014/10/05(日) 19:01:10.47 ID:+/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 名前:デフォルトの名無しさん mailto:sage [2014/10/05(日) 19:42:07.63 ID:oF4PxXkb.net]
それはPowerShell固有の問題ではなく.NETの問題ぽいんだよね

social.msdn.microsoft.com/Forums/vstudio/en-US/c7c4557b-a940-40dc-9fdf-1d8e8b64c46c/dont-create-directory-after-delete?forum=netfxbcl
stackoverflow.com/questions/4216396/system-io-directorynotfoundexception-after-deleting-an-empty-folder-and-recreati

昔これに遭遇したときどうしたかなと調べてみたらフォルダそのものは削除せずにその配下を削除するというコードでお茶を濁してあった

266 名前:デフォルトの名無しさん mailto:sage [2014/10/05(日) 19:54:27.47 ID:+/TDLXSL.net]
>>263
> それはPowerShell固有の問題ではなく.NETの問題ぽいんだよね
うーん、いろいろ深刻なんですね。
割とよくある処理だとおもうのですがw

> 昔これに遭遇したときどうしたかなと調べてみたらフォルダそのものは削除せずにその配下を削除するというコードでお茶を濁してあった
とりあえず、URLを参考にお茶を濁してみます。
ありがとうございました。

267 名前:デフォルトの名無しさん mailto:sage [2014/10/05(日) 20:52:20.32 ID:x1UpicBb.net]
削除に先立ってそのフォルダをリネームしてしまうのはどうかね

268 名前:デフォルトの名無しさん mailto:sage [2014/10/05(日) 23:59:21.00 ID:+/TDLXSL.net]
>>265
> 削除に先立ってそのフォルダをリネームしてしまうのはどうかね
リネーム先の名前がかぶってるかとかチェックするのがだるそうなので
簡略化してかくと↓みたいにして対処しました。
とりあえずこれで問題なくいけてます。
こういうポーリング処理は見苦しくてあまりすきじゃないんですがしょーがないです。
同期オブジェクトでももらえるなら、もらって終わったら起こしてもらうほうが好きですね。
remove-item $path
while ( test-path $path )
{
start-sleep -m 500
}
new-item $path

269 名前:デフォルトの名無しさん mailto:sage [2014/10/06(月) 02:50:23.88 ID:q0WbIU2v.net]
複数のやり方から自分で選択したのにしょーがないもないもんだ

270 名前:デフォルトの名無しさん mailto:sage [2014/10/07(火) 00:03:39.16 ID:j618B6Sr.net]
$a = remove-item $path とか remove-item $path > $null とかかね
いや試してないけど

271 名前:デフォルトの名無しさん mailto:sage [2014/10/07(火) 01:41:24.38 ID:WYpWzpgi.net]
>>263
Windows本体の問題じゃないの?



272 名前:デフォルトの名無しさん mailto:sage [2014/10/15(水) 02:54:21.15 ID:+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 名前:デフォルトの名無しさん mailto:sage [2014/10/18(土) 11:24:48.22 ID:UrxAWZhY.net]
Outlookのフォルダ構成を出力するのってどんなコマンドレットですか?

274 名前:デフォルトの名無しさん mailto:sage [2014/10/25(土) 12:09:13.69 ID:CSyeBZR0.net]
企業の部門エンドユーザーだが、内製での業務効率化に使えるかなあと思って勉強している
古臭いUNIXシェルに、.netオブジェクトと現代的なスクリプト言語の機能を無理矢理
詰め込んだような感じ。記号やオブション指定が多く、かなり取っつきにくい印象あり
これの想定ユーザーはエンドユーザーではなく開発技術者なのかな?

275 名前:デフォルトの名無しさん mailto:sage [2014/10/25(土) 21:48:14.17 ID:oo9NyNnA.net]
UNIXシェルを遥かに超えてるが故に?普及してないな。
デフォでセキュアなのも原因か。

276 名前:デフォルトの名無しさん mailto:sage [2014/10/25(土) 21:56:37.49 ID:wMFwKrRB.net]
UNIXみたいにアプリがコマンド連携できないから

277 名前:デフォルトの名無しさん mailto:sage [2014/10/25(土) 22:47:35.24 ID:CSyeBZR0.net]
コマンドの公式エイリアスが多すぎるのも頭の痛いところ
get-childitem・gci・dir・lsなどと複数あり、大文字・小文字も自由となれば
人により表記のブレが大きくなり、コードの共有に難が出てくる
それならバッチファイルで済ませたくなるのが人情

278 名前:デフォルトの名無しさん [2014/10/30(木) 08:43:46.53 ID:h9RzQ4Cj.net]
>>275
エイリアスは、
他の環境での利用者を考えた結果だろうから
バッチファイルで済ますという考えがあるなら
エイリアスはdos表記利用だけ、あるいはエイリアス禁止に
してしまう手があるともいえる。

279 名前:デフォルトの名無しさん [2014/10/30(木) 08:48:36.56 ID:h9RzQ4Cj.net]
>>272
もともとがサーバー管理者向けにできたもので、
その利用範囲が拡大してきたということでしょ。
エンドユーザーの想定は、少なくとも当初は無いと思うけど。
>>274
その意味が分かんない。PowerShellの方が連携しやすいと
いう認識あるんだけど、思っている意味が違うのかな?

280 名前:デフォルトの名無しさん mailto:sage [2014/10/30(木) 09:14:10.61 ID:eeECNXMU.net]
>>277
UNIXみたいなCUIアプリはパイプと標準入出力で連携できるけど
windowsは基本GUIアプリばかりなので連携できない
もしかして何かあるのなら無知な私に教えてくださいませ

281 名前:デフォルトの名無しさん mailto:sage [2014/10/30(木) 11:12:43.92 ID:P7z1oqc0.net]
Powershell は Powershell で閉じてるよねえ
grep したり find したりとか自前でやるあたりやっぱりシェルっていうより言語環境に近い



282 名前:デフォルトの名無しさん [2014/10/30(木) 13:23:12.07 ID:ApVpmuLz.net]
>>278
>基本GUIアプリばかりなので
自身で主に使っているのがそういう環境だ
ということじゃないかな

283 名前:デフォルトの名無しさん mailto:sage [2014/10/30(木) 15:13:41.75 ID:n5jf4ckH.net]
旧来のシェルは単にテキスト吐き出すだけだからね、
それ以上でも以下でもない。

284 名前:デフォルトの名無しさん mailto:sage [2014/10/30(木) 22:03:57.70 ID:7iNuGGQG.net]
zshやbashは組み込みコマンドだけじゃ何も出来ないからな
awkとかperlのワンライナーとか使い出したら、それはもうシェルスクリプトって次元じゃないだろう

285 名前:デフォルトの名無しさん mailto:sage [2014/10/30(木) 22:22:21.39 ID:tllqb13A.net]
>>278
本業のWindows Server系ではまずPowerShellコマンドレットで機能実装してGUIの皮を被せ
GUI操作内容を後でスクリプトとして吐き出したりできるようにしているよ

286 名前:デフォルトの名無しさん [2014/10/30(木) 22:24:49.66 ID:k8NiVNHr.net]
とはいえperlつかっても結局テキスト吐き出すだけだし
アプリプログラムとしたら、めちゃくちゃ遅いので
その面ではメリットのある利用はシェル替わりにしかならなから
弱ったもんだ。

287 名前:デフォルトの名無しさん [2014/10/30(木) 22:32:50.58 ID:k8NiVNHr.net]
>>278
そもそも、Serverでの管理用に出てきたのに、基本GUIなんて
こと有り得ないでしょう。ちょっと勘違いしてるかな。

288 名前:デフォルトの名無しさん mailto:sage [2014/10/30(木) 22:42:32.77 ID:aZFM4Dkl.net]
>>278
GUIしかないアプリ間で連携させたいというなら
そもそもバッチファイルだろうがUNIXだろうが無理な話で

Windowsだってサーバー管理はコマンドラインツールでどうにかしてきたし、
コマンドラインツールを勉強せずに連携とか言ってるなら、そもそも思想がおかしい。

PowerShellになると既存のコマンドはほとんど置き換えられてしまうけど
色々なコマンドのオプション指定方法がある程度共通化されて、学習コストは下がってきてるし、
データの連携もやりやすくなってるから、今までの経験は置いといて覚えなおすのが良いと思う。

289 名前:デフォルトの名無しさん mailto:sage [2014/10/30(木) 22:45:43.43 ID:2y8PDjyu.net]
>>283
スレ違いかもしれないけど、PowerShellのGUIって何で作るの?

290 名前:デフォルトの名無しさん [2014/10/30(木) 22:47:51.51 ID:k8NiVNHr.net]
WPFでもWinFormでもSiverlightでも。

めちゃくちゃ簡単で自由度高いよ。

291 名前:デフォルトの名無しさん mailto:sage [2014/10/30(木) 22:55:20.17 ID:IM+QeQcX.net]
読みづらいんだけど。規約とか工夫してることある?



292 名前:デフォルトの名無しさん [2014/10/30(木) 22:57:13.10 ID:k8NiVNHr.net]
>>289 
私の場合は、省略形(エイリアス)は使わないようにしてる。
自分だけならいいんだけどね。

293 名前:デフォルトの名無しさん mailto:sage [2014/10/30(木) 22:58:03.04 ID:tllqb13A.net]
>>287
アプリの機能をコマンドレットとして実装してるってだけで
別にPowerShellでGUIまで実装してるわけじゃないよ?

294 名前:デフォルトの名無しさん mailto:sage [2014/10/30(木) 23:05:47.26 ID:P7z1oqc0.net]
サーバー管理系以外のアプリもコマンドレット実装してたりするもんなの?

295 名前:デフォルトの名無しさん mailto:sage [2014/10/30(木) 23:12:25.65 ID:2y8PDjyu.net]
>>291
自分でつかうぶんにはコンソールから使えばいいんだけど、他のひとにつかってもらうときにはGUIがあったらいいなー何て思ってるのでつい反応してしまいましたがな。。。。

296 名前:デフォルトの名無しさん [2014/10/30(木) 23:13:10.90 ID:k8NiVNHr.net]
まだそんなにないでしょうね。
わたしは作ってるけど。
米国ではツールとしてだいぶでてきてる。
聞いていることの回答になっているかはわからないけど。

297 名前:295 [2014/10/30(木) 23:15:39.82 ID:k8NiVNHr.net]
>>294 は >>292 への回答でした

298 名前:デフォルトの名無しさん mailto:sage [2014/10/31(金) 04:19:42.55 ID:6uOYsRYD.net]
学習中だが、コードが見にくいですなあ
キャストも添字参照もオブジェクトのメンバアクセスも[]を使うので
[]だらけになってしまいがち。あと$・@・{}などの記号が多い印象
シンプルなPythonから来たのでかなりつらい

299 名前:デフォルトの名無しさん mailto:sage [2014/10/31(金) 06:10:03.53 ID:5RNGAkQP.net]
旧来のシェルを知ってると馴染みぶかくていい

300 名前:デフォルトの名無しさん [2014/10/31(金) 07:03:03.31 ID:rr8q/oyJ.net]
記号が多い言語と言えば

静かな湖畔の森の陰から
もう起きちゃいかがとカッコウがなく
カッコウ カッコウ カッコウ カッコウ カッコウ

Lispの歌でした

301 名前:デフォルトの名無しさん [2014/10/31(金) 09:19:46.12 ID:th/TRSyt.net]
記号の種類が多いのは、何と言ってもAPL
これに種類が勝る言語はないだろう。

作った本人がわからなくなるという話は有名



302 名前:デフォルトの名無しさん mailto:sage [2014/11/01(土) 07:38:04.23 ID:zr+1nUxZ.net]
型を指定できる時点で断然いい
Pythonはワンライナーが致命的に向かないので、Perlやawkがなくなる事はないだろう

303 名前:デフォルトの名無しさん [2014/11/01(土) 12:54:29.11 ID:DNMo+a9Y.net]
>>299
そいえば、APLはワンライナーにチャレンジしたがる人の宝庫ですね。
その代り
 >作った本人がわからなくなるという話は有名
そのとおり

304 名前:デフォルトの名無しさん mailto:sage [2014/11/01(土) 13:02:20.00 ID:B4tit/6m.net]
全ての変数名に$が付くのは、自分にはタイピングの負荷が高いなあ
小指が攣りそうになる
UNIXのBシェルだっけ?あれは確か変数の参照の時だけ$が付いたと記憶している
そっくり真似するのはアレだから、アレンジしてどんな時も付けるようにしたのか?

305 名前:デフォルトの名無しさん mailto:sage [2014/11/01(土) 13:37:11.72 ID:awheomXH.net]
直交性の話じゃないの
全部付けるにしたほうが構文解析も楽だろうし

306 名前:デフォルトの名無しさん mailto:sage [2014/11/01(土) 15:14:56.05 ID:tDHeWf5U.net]
シェルで$使わないのって知らないわ

307 名前:デフォルトの名無しさん mailto:sage [2014/11/02(日) 05:19:32.65 ID:KOUMXij0.net]
由緒正しいシェルスクリプトでは$は参照用の記号だよ。
$a=aなんてやったら$aの中の変数にaが入っちゃう。
なんでもかんでも$つければいいって、バカのやることだよ。

308 名前:デフォルトの名無しさん mailto:sage [2014/11/02(日) 07:37:13.70 ID:3XDfxtRF.net]
=の隣にスペース置くなとか、古いシェルは罠だらけだよな
配列とかパラメーター展開も意味不明な構文暗記させられるし
PowerShellは何もかも洗練されてる

309 名前:デフォルトの名無しさん [2014/11/02(日) 09:27:10.54 ID:L9JlfI9E.net]
UNIXの場合は、初期のころツールがほんと少なくって、シェルに頼るしか
なかったし、使うのもシステム関係者と一部研究者が多かったので
それでも、どうにかなったという感じだったな。
私の周りはSASを使っていたのでUNIXでもシェルを使う場面はほぼなく
開発できたが、他のツール使ってる部門ではジェル必須(だらけ)だっな。

310 名前:デフォルトの名無しさん mailto:sage [2014/11/02(日) 10:21:33.46 ID:+FBbeC+X.net]
ジェル必須とかスタイリッシュな職場だったんだね

311 名前:デフォルトの名無しさん [2014/11/02(日) 10:32:03.37 ID:7/ZQZRkL.net]
まあ言い方次第だね、しかたなくシェルだったんだけどね。
開発効率メチャクチャわるくて、私たちの1/10くらいの進度だった。
シェルだけじゃすまないからね。
その時代と比べたら、今は雲泥の差だ。



312 名前:デフォルトの名無しさん mailto:sage [2014/11/02(日) 12:36:24.05 ID:+FBbeC+X.net]
いや、誤字を茶化しただけだから・・

313 名前:デフォルトの名無しさん mailto:sage [2014/11/02(日) 12:40:11.34 ID:FPvqJpqA.net]
自分で解説するのどんな気持ち? ねえどんな気持ち? (AA略

314 名前:デフォルトの名無しさん mailto:sage [2014/11/02(日) 12:59:05.99 ID:fLE2zYfa.net]
最近つかいはじめたけど[ ]の扱いがうざすぎる

315 名前:デフォルトの名無しさん mailto:sage [2014/11/02(日) 13:08:02.66 ID:0KDQawZd.net]
日本語キーボードなら ( ) より入力楽じゃん
他の言語の流儀で通そうとすると使用頻度増えるかもね
たかがコマンド実行環境、という認識で使ってればほとんど出番はない

316 名前:デフォルトの名無しさん [2014/11/02(日) 13:18:15.72 ID:8HCUuVfe.net]
[ ] は、 あ〜確かや

317 名前:デフォルトの名無しさん mailto:sage [2014/11/02(日) 15:29:53.62 ID:fLE2zYfa.net]
拡張子の違う複数のファイルがあって
[a].a
[a].b
[a].c

次のような処理を書いたんですけど
$file = "[a].a"
get-childitem $file.replace(".a","*").replace("[","````[")

なんかスマートじゃない気がしてもっと良い書き方はありますか?
-literalpathをつかうとワイルドカードは使えなくなるみたいですし

318 名前:デフォルトの名無しさん mailto:sage [2014/11/02(日) 16:18:05.96 ID:0KDQawZd.net]
ああワイルドカードの話ね、-filterパラメータ使うと楽だよ、フルパス指定はできないけど
ls -filter [?].txt

319 名前:デフォルトの名無しさん mailto:sage [2014/11/02(日) 16:20:11.32 ID:0KDQawZd.net]
逆だった
ls -filter [a].?

320 名前:デフォルトの名無しさん mailto:sage [2014/11/02(日) 16:50:32.68 ID:fLE2zYfa.net]
>>316-317
ありがとうございます
すいませんもう一ついいですか
moveの場合だと次のようにしたらfilter関係無くカレントディレクトリの全ファイルマッチしてしまうんですがどうすればよいでしょうか

move-item -filter [a].? .\* .\dest\

321 名前:デフォルトの名無しさん mailto:sage [2014/11/02(日) 17:04:23.84 ID:0KDQawZd.net]
なんだろね、Copy-Itemならちゃんと絞ってくれるけど
基本列挙は ls に任せてファイル操作系コマンドは宛先指定だけにした方がいいよ



322 名前:デフォルトの名無しさん mailto:sage [2014/11/03(月) 03:00:35.27 ID:TAxV/Jyl.net]
$arr=ls

foreach($f in $arr){
コマンド
}

一旦、該当するファイルを、配列に入れて、
その配列から、1つずつ取り出しながら処理する

323 名前:デフォルトの名無しさん mailto:sage [2014/11/03(月) 19:49:56.02 ID:qlYoK+bJ.net]
win7x64のデフォで入ってるpowershell(バージョン2.0?)でぐぐって出てくる
windows.form使うサンプルが軒並み動かないんだけどどうなっとんの
例えばこれ
technet.microsoft.com/en-us/library/ff730941.aspx

$objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape")
{$objForm.Close()}})
の行でいきなりプロセスが消える
なんか足りてないの?
せめてエラー吐くなりして欲しいな

324 名前:デフォルトの名無しさん mailto:sage [2014/11/03(月) 20:02:23.21 ID:gOXM5TDK.net]
今日ハマったこと

.replace("hoge", "hage") だと正規表現が使えないけど
-replace "hoge", "hage だと正規表現が使える

325 名前:デフォルトの名無しさん mailto:sage [2014/11/03(月) 20:04:01.88 ID:3+1wQ0JU.net]
STAオプションでで起動してないからでねーの。

326 名前:デフォルトの名無しさん [2014/11/04(火) 03:25:40.87 ID:30WYsMeZ.net]
このコマンドで、バージョンがわかる
$PSVersionTable

PSVersion 3
CLRVersion (.net) 4
BuildVersion 6.2


PowerShellと同じフォルダにある、
PowerShell_ise を使えば、デバッグしやすい

-WhatIf を付けて実行すれば、実際には実行せずに、
何が起こるか表示してくれる

327 名前:デフォルトの名無しさん mailto:sage [2014/11/04(火) 05:41:24.19 ID:30WYsMeZ.net]
>>321
なぜ英語のサイトを見るの?
わかりやすい日本語のサイトは無いの?

.NETの、system.windows.forms - Form クラス
ttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.form(v=vs.110).aspx

Form.CancelButton プロパティ
ttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.form.cancelbutton(v=vs.110).aspx

328 名前:デフォルトの名無しさん [2014/11/04(火) 08:46:27.82 ID:eLjF+jjJ.net]
>>321
ためしてみたけど、
おれは、そのままで動くよ。
Win7 64bit 環境

329 名前:53 mailto:sage [2014/11/04(火) 08:47:20.12 ID:5vxSHexS.net]
Python 3.4.2 を入れてみた
コマンドラインで実行。

ttp://peace.2ch.net/test/read.cgi/tech/1407008551/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 [2014/11/04(火) 08:50:19.00 ID:eLjF+jjJ.net]
あ、書き忘れ
PowerShellのバージョンは V3.0

331 名前:53 mailto:sage [2014/11/04(火) 18:47:12.50 ID:5vxSHexS.net]
ループに入るタイミングを間違えてたんでやり直した。
桁が一つ違ってた。
数値がそれなりだったからずれてるのに気が付かなかった。

185010  i+=1  datetime.datetime.today().second
173615  inc(i)       上に同じ

1372280  i+=1  int(time.perf_counter())
1050301  inc(i)       上に同じ



332 名前:デフォルトの名無しさん mailto:sage [2014/11/07(金) 23:04:07.78 ID:a8wUtjf+.net]
>>319-320
やっとわかりました
こうやればいいんですね
get-childitem -filter [a].? | move-item -destination .\dest\

パイプの使い方がUNIXと違って理解したらすんなり解決しました

333 名前:デフォルトの名無しさん mailto:sage [2014/11/07(金) 23:32:54.68 ID:JlZS/IBt.net]
ずっと悩んでたんかいw
聞いてくれてよかったんに

334 名前:デフォルトの名無しさん mailto:sage [2014/11/08(土) 16:13:47.29 ID:LrfZTEX2.net]
>>331
いや一応目的は達成してたので保留にしてただけで
パイプの使い方を知ったら解決したってだけです

ちなみに今日もハマってしまったことがあるんですけど
foreachがforeach-objectのエイリアスだと思ってたら別物で
foreach-objectはbreakが使えなかった

335 名前:デフォルトの名無しさん [2014/11/10(月) 18:28:50.51 ID:y2XAPBpw.net]
foreachの件は、以前から、ちがうよ〜って
結構いわれてますね。

336 名前:デフォルトの名無しさん mailto:sage [2014/11/10(月) 21:45:21.91 ID:NuItsKjt.net]
高嶋の演技いいね

337 名前:デフォルトの名無しさん [2014/11/11(火) 04:02:01.76 ID:g7KV1ReX.net]
>>330-333
パイプで受け取ったオブジェクトを表すには、
'$_'という自動変数を使う

Get-Variable で自動変数の一覧を表示できる

ls -Directory | ForEach-Object {$_.Name}

338 名前:デフォルトの名無しさん mailto:sage [2014/11/11(火) 21:03:21.52 ID:G70pNtNA.net]
powershell2.0でモードレスダイアログ作ってるんですが
表示したばかりの状態でESCでキャンセル動作、
Enterでデフォルトボタン押下動作にするにはどうしたらいいんでしょうか
MSとかのサンプルにはそういうのが見つかりませんでした
VBとかだとこんなの当たり前だったのに情報源が乏しくて厳しいです

339 名前:326 mailto:sage [2014/11/12(水) 08:49:13.77 ID: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 名前:デフォルトの名無しさん mailto:sage [2014/11/12(水) 21:49:16.87 ID:ngdm2RX5.net]
>>337
できました!
ありがとうございました
しかしこれって適当な.NET系言語と並行で覚えた方がよさそうですね…

341 名前:デフォルトの名無しさん mailto:sage [2014/11/26(水) 00:43:41.05 ID:g3+x1KG0.net]
VB.netがあるじゃない
まさかあの噂でしか聞いたことがないVB6のことか〜



342 名前:デフォルトの名無しさん [2014/12/04(木) 08:25:18.27 ID:ce/wf1ga.net]
xcopyは古そうなので、robocopyを使おうと思ったが、

Win8で、robocopyで、フォルダを丸ごと再帰的に、
すべての更新されたファイルと、
新しく作られたファイルのみをコピーしたい
(ショートカットはコピーしない)

robocopyのオプションが複雑すぎて、わからないw
どう書けばよい?

343 名前:デフォルトの名無しさん mailto:sage [2014/12/04(木) 09:08:49.28 ID:oJkFYkSJ.net]
>>340
ここはPowerShellのスレなんで他で聞いてね

344 名前:デフォルトの名無しさん mailto:sage [2014/12/04(木) 18:42:37.00 ID:IpfKGnoS.net]
>>340
日本語で書いてあるから読めば分かる。
読んで分からなければ動かせば分かる。
/MIR オプション無けりゃ失敗しても被害は少ないw

345 名前:デフォルトの名無しさん mailto:sage [2014/12/05(金) 20 ]
[ここ壊れてます]

346 名前::46:13.92 ID:JjIVLuOx.net mailto: WindowsのタスクスケジューラーでPowerShellのスクリプトを実行する際には「パス」に注意
ttp://www.atmarkit.co.jp/ait/articles/1412/03/news125.html

PowerShellに限った話じゃないけども
[]
[ここ壊れてます]

347 名前:デフォルトの名無しさん mailto:sage [2014/12/05(金) 20:59:00.79 ID:IWdjIwm1.net]
.\のようなUnixの変な流儀まで真似しなくていいのにと思う
バッチファイルの方が気楽だなあ俺は

348 名前:デフォルトの名無しさん [2014/12/06(土) 09:30:22.09 ID:1UBNwgr7.net]
>>344
どこで使う¥のこと?

349 名前:デフォルトの名無しさん mailto:sage [2014/12/06(土) 10:12:14.22 ID:7dObdE3W.net]
>>345
.\ と言えばカレントディレクトリに決まってるだろ

350 名前:デフォルトの名無しさん mailto:sage [2014/12/06(土) 10:48:32.24 ID:hSVQ21qQ.net]
.\つける方が合理的だと思うけど

351 名前:デフォルトの名無しさん mailto:sage [2014/12/06(土) 12:01:58.60 ID:YWCmwsqj.net]
UNIXのCronも通常、環境変数はリセットされるからね



352 名前:デフォルトの名無しさん mailto:sage [2014/12/06(土) 13:10:05.65 ID:VkOLgdHH.net]
バッチファイルと違ってセキュリティ的にクリティカルな場所での運用も期待されてるってことなんだよね。

353 名前:デフォルトの名無しさん mailto:sage [2014/12/07(日) 15:17:34.34 ID:qsG48RtN.net]
単にカレントディレクトリをパスに加えるかって話だな
補完はできるからあまり苦にならんと思うよ

バッチと違って・・・とか見当違いのこと言い出すアホはもっと勉強しろ

354 名前:デフォルトの名無しさん mailto:sage [2014/12/07(日) 15:18:55.54 ID:qsG48RtN.net]
バッチのほうが慣れてるからバッチのほうがいいと言い出すのは当然のこと

355 名前:デフォルトの名無しさん [2014/12/07(日) 17:17:24.28 ID:fifuCS4i.net]
>>341
パワーシェルでもコマンドプロンプト使えるんですが

356 名前:デフォルトの名無しさん mailto:sage [2014/12/07(日) 17:55:35.08 ID:WRVsacF6.net]
>>352
「コマンドプロンプト」をどういう意味で使っているのかわからないけど、Robocopyのオプションが分かりにくいのであれば、RichCopyっていうGUI版があるから、そちらを使ってみたらどうだろうか?
technet.microsoft.com/ja-jp/magazine/2009.04.utilityspotlight.aspx
www.forest.impress.co.jp/article/2009/05/15/richcopy.html

357 名前:デフォルトの名無しさん mailto:sage [2014/12/20(土) 17:30:13.67 ID:z0Uvrlhl.net]
単純なディレクトリサイズ計算したら、ディスク上のサイズと違うんですが
クラスタサイズ?で自前で計算しないといけませんか?
簡単な方法があるんでしょうか?

358 名前:デフォルトの名無しさん mailto:sage [2014/12/31(水) 00:03:30.58 ID:jhIXu+J3.net]
Windows 秘話: ディスク上のサイズの正体
technet.microsoft.com/ja-jp/magazine/hh148159.aspx
Computing the size of a directory is more than just adding file sizes
blogs.msdn.com/b/oldnewthing/archive/2004/12/28/336219.aspx

359 名前:デフォルトの名無しさん mailto:sage [2015/01/06(火) 01:58:48.79 ID:vDyOmCN+.net]
よくわかりました。ありがとう。

360 名前:53 mailto:sage [2015/02/17(火) 11:03:57.23 ID:Q2g81oZ1.net]
Python は Ruby より遅いと言う話が出たので試してみました。
環境はWindows 8.1 32ビットなので他言語より5%ほど有利

1秒あたり
カウント数
230794   i+=1 Time.now.sec
223535   inc(i)   〃

なるほど Python の today().second より速い結果が出ました。
そしてすぐ書けた。

でも、CPU時間を使った方はだいぶ遅い。
どうも安定しないし逆転したりするからミスがあるかも。
ラスト  前回
686031 710067   i+=1 Process.times.utime.to_i
635549 644149   inc(i)   〃

361 名前:デフォルトの名無しさん [2015/02/20(金) 03:39:11.31 ID:Gmp7b6pB.net]
なんでも出来そうだけど
例えばWebスクレイピングみたいなのやろうとすると
向いてないのでやる気にブレーキが掛かるんだよな
wshの方が楽だし
気づけば何ヶ月もいじっていないw

しかしせめてバッチファイルスレよりは活発にしたい



362 名前:デフォルトの名無しさん mailto:sage [2015/02/20(金) 10:26:41.98 ID:EGbfWoDB.net]
凝ったことするんだとするとよっぽど慣れてるんでもない限り
VSとかで普通にC#でコード書いたほうがつぶしが聞く感はある。
そうやって作ったexeなりdllなりをpowershell側から上手に使うとかならまだわかるけど。

363 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 00:50:33.03 ID:EGmkPPJP.net]
凝ったことするツールではないと思うが、
頑張ればたいていの処理ができるってところがEmbedded系では重宝したりする。






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

前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