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

236 名前:デフォルトの名無しさん [2014/06/21(土) 10:30:10.12 ID:CuxdLLeL.net]
伊瀬って人の名前かと思ったわ

237 名前:デフォルトの名無しさん mailto:sage [2014/06/21(土) 11:10:30.86 ID:5Gha9VrW.net]
× 伊瀬

○ 伊勢

238 名前:デフォルトの名無しさん mailto:sage [2014/06/21(土) 14:55:17.30 ID:hhcyEr91.net]
>>232
まあ表示させようとしたのはタブ区切りファイルなんだけどね。(「-delimiter `t」を指定)
ちなみにタブ区切りファイルの全行の末尾にタブ1個追加すると最終列も「-eq ""」で抽出出来た。
余談だけどOutGridViewの表示内容をコピーすると全行の末尾に余分なタブが付いてるのもこれ絡みに理由なんだろうか…

239 名前:デフォルトの名無しさん [2014/06/26(木) 07:18:34.55 ID:W91RvMJw.net]
>>236
末尾のタブの有無じゃなくて
もしかして、ファイルの最後に改行が入って無いんじゃない?

240 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 05:31:37.22 ID:86Qko6ZX.net]
これはWindowsの内部情報を操る部分にだけ使い、
一般的なUI処理・データ処理はバッチファイルや
PythonやRubyなどを併用した方が良さそうだな
コマンド名が冗長でついていけない

241 名前:デフォルトの名無しさん mailto:sage [2014/08/31(日) 08:59:00.04 ID:Fxu9rxFN.net]
他のLL覚えてて使用できる環境ならそれで十分だとは思うが
さすがにバッチはないわー・・・

242 名前:デフォルトの名無しさん [2014/09/02(火) 09:24:06.69 ID:uW2FT7+h.net]
>>238
ls,cd,cpなど、UNIX系の短いコマンド名も使える

243 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 12:39:30.46 ID:Ez2bfEzC.net]
>>238
エイリアスあるだろ

244 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 12:56:46.77 ID:rTXrUpAw.net]
コマンドの命名規則が統一されてるから、細かく覚えてなくても、getcommandとタブの補完で済む



245 名前:デフォルトの名無しさん [2014/09/04(木) 21:44:10.03 ID:tOnhAyW6.net]
Windows Server 2012 R2 でFPTサーバー機能インストール後
下記コマンドでサイト追加すると物理パスが設定されない

Import-Module WebAdministration
New-WebFtpSite -Name "●●●" -PhysicalPath "パス文字列"

administrator権限で実行してるし、GUIで設定すると問題なくできる
パス文字列をダブルクォテーション無しやシングルクォテーションで囲ったりも試したがダメだった

誰か助けてくれー

246 名前:デフォルトの名無しさん mailto:sage [2014/09/04(木) 21:53:03.90 ID:uNyEwEdx.net]
>>243
MSのサポートに聞けばいいじゃん
権利持ってるんでしょ

247 名前:デフォルトの名無しさん mailto:sage [2014/09/05(金) 13:32:14.07 ID:TJ9WELPZ.net]
入力したコマンドとエラーメッセージを、正確に書け

パスは相対・絶対?ドライブ名は?
カレントディレクトリはどこにある?

248 名前:デフォルトの名無しさん [2014/09/05(金) 19:56:46.63 ID: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 名前:デフォルトの名無しさん mailto:sage [2014/09/05(金) 23:18:10.66 ID:TJ9WELPZ.net]
PowerShellと同じフォルダにある、powershell_ise で、
-WhatIf オプションを付けて実行してみたら?

このオプションは、実際には実行されず、
何が起こるか表示するだけ

250 名前:デフォルトの名無しさん mailto:sage [2014/09/06(土) 00:33:52.22 ID:lo5BUZzT.net]
この程度でプレミア使ってたら他で使えなくなるだろw

251 名前:デフォルトの名無しさん [2014/09/25(木) 18:53:25.00 ID:3nQex4gX.net]
power shellは、ファイルの入・出力の真似事のようなことはできても、
まともにプログラムを作るのは無理だな。

252 名前:デフォルトの名無しさん [2014/09/25(木) 23:29:14.42 ID:lRwJZ1gU.net]
そりゃ言語部分は、インタプリタの
スクリプトだから、目的が違うよ。
組み合わせれば、いいものもできるが
それだけじゃできても、遅くて無理。

253 名前:デフォルトの名無しさん mailto:sage [2014/09/26(金) 11:58:07.40 ID:TbsD84QQ.net]
DSCとかいうの話題出てないようだけどあれは何なの

254 名前:デフォルトの名無しさん mailto:sage [2014/09/27(土) 14:32:34.67 ID:W5v3g7cK.net]
>>251
www.buildinsider.net/enterprise/powershelldsc/01



255 名前:デフォルトの名無しさん mailto:sage [2014/09/29(月) 14:54:02.15 ID:/M46FFaB.net]
バッチはこんなのまでバッチでやるなんて・・とネタで盛り上がりやすかったんだよな
wshになるとCOM化オブジェクト化+本格スクリプト使用でできて当然、はしゃぐことはなくなっていった
PowerShellはさらに進化し玄人受けがすごく良いが登場時以降は小康状態へ
もっと新規に触れてほしいね

256 名前:デフォルトの名無しさん mailto:sage [2014/09/29(月) 14:59:20.82 ID:/M46FFaB.net]
PowerShellなら、様々なファイルの属性を取り出せる

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

ファイル名について、
Extensionで、.txt などの拡張子の部分
BaseNameで、Extensionを除いた部分
(Name = BaseName + Extension)

.NETのクラスの説明を参照

257 名前:デフォルトの名無しさん mailto:sage [2014/09/29(月) 20:56:14.73 ID:hnxt5DQK.net]
>>252
アホだろお前
で使ってんのか?

258 名前:デフォルトの名無しさん mailto:sage [2014/10/03(金) 00:23:14.30 ID:pHiC8ZbM.net]
何怒ってんの

259 名前:デフォルトの名無しさん [2014/10/03(金) 23:08:21.66 ID:HQ6EBXmx.net]
ほんとだね。何か言いたいことがあるのかな?

260 名前:デフォルトの名無しさん mailto:sage [2014/10/04(土) 23:13:26.07 ID: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 mailto:sage [2014/10/04(土) 23:15:01.58 ID:zSlTHuRa.net]
訂正
$command_line.split()
↑の行は必要ないです。

262 名前:デフォルトの名無しさん mailto:sage [2014/10/05(日) 10:33:19.45 ID:mngpVki9.net]
$program = "user"

$arguments = @()
$arguments += "-command-hoge"
$arguments += "-command-fuga"
$arguments += "-command-moge"

& $program $arguments

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]
高嶋の演技いいね






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

前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