ラベル PowerShell の投稿を表示しています。 すべての投稿を表示
ラベル PowerShell の投稿を表示しています。 すべての投稿を表示

2011年2月15日火曜日

PowerShell でテキスト操作


  1. ファイルの内容を表示する。
    PS> gc hogehoge.txt
  2. 行数をカウントする。
    PS> (gc hogehoge.txt).length
  3. 正規表現にマッチした行を表示する。
    PS> (gc hogehoge.txt) | select-string "some"

正規表現による置換

PS> gc users.txt # "users.txt" の中身を表示
user01
user02
user03
user04

PS> (gc users.txt) -replace '.+(..)', 'dsadd user "cn=$0,cn=Users,dc=hogehoge,dc=local" -pwd "Secret#$1"' |
>> out-file -enc default add-user.cmd
>>
PS> gc add-user.cmd
dsadd user "cn=user01,cn=Users,dc=hogehoge,dc=local" -pwd "Secret#01"
dsadd user "cn=user02,cn=Users,dc=hogehoge,dc=local" -pwd "Secret#02"
dsadd user "cn=user03,cn=Users,dc=hogehoge,dc=local" -pwd "Secret#03"
dsadd user "cn=user04,cn=Users,dc=hogehoge,dc=local" -pwd "Secret#04"

※ 単にリダイレクト (>) でファイルに保存すると Unicode になってしまってばっちファイルが実行できません。out-file -enc default FILENAME を使うことにより、Shift_JIS コード (CP932) で保存できます。

各行の内容を "; " で区切る。

PS> foreach ($user in (gc users.txt)) { $out += $user + "; " }
PS> $out >users-list.txt
PS> gc users-list.txt
user01; user02; user03; user04



参考

2010年10月30日土曜日

PowerShell で XML を扱う

(作成中...)

参考

PowerShell の基本的なことをメモする。

PowerShell について、今まで興味があまり無かったのですが、ここに来て少し勉強してみることとしました。
簡単な文字列処理なら、Perl か Python を使っていました。
Windows 標準の PowerShell なら多くの人にとって扱えるツールになる可能性があると思い、文字列処理などを PowerShell で扱えるように勉強することとしました。

PowerShell は、Windows XP 以降の Windows なら Windows Update から導入できます。
コマンドプロンプトを起動し、powershell と入力すれば、PowerShell のプロンプトに変わります。
bash のように Tab 補完や、カーソルキーの上下によるコマンド履歴が使えます。

  • ヘルプ
    Get-Help
  • コマンドレットやエイリアス、関数などの一覧を表示
    Get-Command
  • コマンドレットやエイリアスのヘルプ
    ls -? のように "-?" を付加する。
  • 出力を1ページ毎に表示する。
    Get-Command | more のように "more" をパイプ (|) で繋ぐ。
  • 正規表現にマッチする行を抽出する。(grep のようなコマンド)
    netstat -an | Select-String ESTA のように"Select-String" をパイプ (|) で繋ぐ。

参考