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

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

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

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

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

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

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

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

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

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

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

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

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

> Write-Output 1 2 3
1
2
3

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

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

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

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



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

230 名前:デフォルトの名無しさん mailto:sage [2014/06/09(月) 00:18:43.04 ID:5ZVLqxF5.net]
>>227
ちょっと調べてみた感じサーバ側の設定が必要なんですね
まだ入社したばかりで、大量にあるサーバを全手動でチェックしてるのでそこをなんとかしようと思って調べてました
お上にお伺い立てないといけませんが、もうちょっと調べて行けそうなら考えてみます
ありがとうございます

231 名前:デフォルトの名無しさん mailto:sage [2014/06/15(日) 12:59:24.56 ID: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 名前:デフォルトの名無しさん mailto:sage [2014/06/20(金) 15:35:56.81 ID:HoBg26Gr.net]
バージョン2.0使ってるけどConvertfrom-Csvで変換後にある列がブランクの行をWhereで抽出して表示させようとしたんだけど
他の列は「-eq ""」でいいんだけど最終列だけは「-eq $null」にしないと抽出できないね。
列ごとに書き方変えるの面倒なのでIsNullOrEmpty使うようにしたけどバグに近いレベルの仕様だな。
上位バージョンだと改善されてるのかな?

233 名前:デフォルトの名無しさん [2014/06/20(金) 16:53:37.72 ID:wHzCGsbi.net]
>>230
IsNullOrEmpty
使うものですよ

234 名前:デフォルトの名無しさん mailto:sage [2014/06/20(金) 17:49:45.80 ID:1hp3pFc2.net]
CSV自体が欠陥規格だから、変換後のデータをよーく検証しないのが悪い。

235 名前:デフォルトの名無しさん mailto:sage [2014/06/21(土) 09:09:56.44 ID:OJ/lzG/j.net]
Windows PowerShell 伊瀬

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\






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

前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