Windows PowerShell 2.0at WIN
Windows PowerShell 2.0 - 暇つぶし2ch458:名無し~3.EXE
09/03/08 23:42:36 NTu3aDQw
>>457
おお、ありがとう。
括弧で括ってやらないと全体をコマンドかなにかとみなしてしまうのかな。

459:名無し~3.EXE
09/03/10 07:41:20 Ge2cLDfn
>>458

コマンドラインをどう解釈しているのかわからんから、そのあたりは何ともねぇ。

コマンドレットが返すオブジェクトは「(コマンドレット)」。一方、オブジェクトのメソッドが返す
オブジェクトは「オブジェクト.メソッド()」だけで表せる。

PS H:\> (get-date).tostring().length
18

460:名無し~3.EXE
09/03/10 08:29:16 SpoUCbw5
ドットはコマンド名に使えるから、
Get-Date.gettype() が Get-Date.gettype というコマンドの引数に () を渡していると解釈されて
() には中に式が無いから「式が '(' の後に必要です。」とエラーを吐くってだけだよ

function get-hoge.huga { $args }
get-hoge.huga (10)
get-hoge.huga ()
get-hoge.huga(10)
get-hoge.huga()

461:名無し~3.EXE
09/03/11 16:50:08 nqBHrF+w
[] をファイル名に含むフォルダに移動できないんだけど、どうやれば回避できるの?
ちなみにバージョンは2.0 CTP2

C:\>mkdir "[a]"
Directory: Microsoft.PowerShell.Core\FileSystem::C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 09/03/11 (水) 16:37 [a]

C:\>cd "[a]"
Set-Location : Cannot find path '[a]' because it does not exist.
At line:1 char:3
+ cd <<<< "[a]"

462:名無し~3.EXE
09/03/11 17:05:03 64qgSOZU
[] はファイルグロブだから`でエスケープしないと駄目
cd ``[a``]
cd "``[a``]"
cd '`[a`]'

463:名無し~3.EXE
09/03/11 17:06:55 64qgSOZU
cd したいだけなら ?a まで入力してタブ補完した方が楽だと思う

464:名無し~3.EXE
09/03/11 22:33:37 6gKAeyH4
>>461

"["と"]"をエスケープして、

 cd '`[a`]'

とやるのが基本だが、"-l"を使って、

 cd -l [a]

とやってもいい。

とかく"["と"]"は悩ましい。

465:名無し~3.EXE
09/03/12 08:08:17 MrQJOp9U
WSHから、他のアプリケーションにキー入力を送って自動化のようなことをやってたのですが、
PowerShellで同じことはできますか?


466:名無し~3.EXE
09/03/13 08:47:48 MsxOsWTB
WScript.Shellは今までどおり使えるよ

notepad.exe
$p = Get-Process notepad
$w = New-Object -ComObject WScript.Shell
sleep 1
$w.AppActivate($p.Id)
$w.SendKeys("hello")

とかまあそんな感じで

467:名無し~3.EXE
09/03/13 12:33:18 PSGZOhtl
>>466
ありがとうございます。
PowerShell独自のブックレットがあるというより、やはりWScript.Shell経由なんですね。


IDかっこいいですね。

468:名無し~3.EXE
09/03/13 17:13:11 43dbDnSk
>>467
ブックレット・・・コマンドレットのこと?
WASP使えばできる
URLリンク(www.codeplex.com)

Select-Window notepad | Set-WindowActive | % {sleep 1; Send-Keys -window $_ hogehoge }

みたいな感じで

469:名無し~3.EXE
09/03/14 19:04:53 bLVkfmRR
>>468
ありがとうございます。
コマンドレットのことを勘違いしてました。

470:名無し~3.EXE
09/03/18 12:18:37 Ac/b45Ur
完成したらしい
Download details: IIS Powershell Snap-in (x86)
URLリンク(www.microsoft.com)

Download details: IIS Powershell Snap-in (x64)
URLリンク(www.microsoft.com)


471:名無し~3.EXE
09/03/20 09:03:01 eISg9OrQ
function Find-Alias ($x) { dir alias: | where {$_.Definition -eq "$x"} | fl -p name }
はきちんと動くのに、
function Find-Alias { dir alias: | where {$_.Definition -eq "$args"} | fl -p name }
としたら動かないのはなぜなんでしょうか?

たとえば
function myecho ($x) { echo $x }
function myecho { echo $args }
はどちらも変わらないんですが。。

472:名無し~3.EXE
09/03/20 09:27:32 THD/f+DY
>>471

$argsは配列だ。$_.Definitionは配列じゃない。だから、$_.Definition -eq $argsは使えない。

echoはWrite-Outputのエイリアス。Get-Help Write-Outputをやってみると、

構文
Write-Output [-inputObject] <PSObject[]> [<CommonParameters>]

PSObject[]は配列だ。だから、echo $argsはいける。

473:名無し~3.EXE
09/03/20 09:51:50 eISg9OrQ
>>472
丁寧にありがとうございます!
$args は Object[] で、$xに代入した時点で String 型になってるみたい?ですね。
うーん難しい…。まだ完全には解っていませんので、もう少し勉強します。
失礼しました。ありがとうございました。

474:名無し~3.EXE
09/03/21 17:28:11 AlaSt7oN
>>471
下の例で出力がどちらも変わらないのは引数が一つの時だけだよ
$argsの要素にはその関数に渡された引数が一つずつ入ってる
$args[0] のように添え字をつければ $x と同じになるよ

475:名無し~3.EXE
09/03/25 07:36:51 w7A9SMXs
Powershell 2.0って、XPではまだStart-Jobとか使えない。これってやはり、「早くVistaに乗り
換えろ、ボケ!」というMSの主張を含んでいるんだろうか?

476:名無し~3.EXE
09/03/25 12:54:05 ZX1SJAGN
>>475
この辺読んどけ
URLリンク(blogs.msdn.com)

477:名無し~3.EXE
09/03/25 18:19:29 kZGPxN0i
>>476
かいつまんで日本語でお願い。

478:名無し~3.EXE
09/03/25 18:52:18 ZX1SJAGN
>>477
XP向けにリモーティング機能を実装すると他の機能を切り捨てざるを得なくなるので後回し


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch