satocchiaブログ

satocchiaブログ

PR

キーワードサーチ

▼キーワード検索

プロフィール

satocchia

satocchia

カレンダー

お気に入りブログ

まだ登録されていません

コメント新着

effelpist@ kilovermek.es effelpist <a href="https://kilovermek.es/…
tomoZo@ Re:Pale Moon日本語化トラブル(06/06) はじめまして。 28.16.0でまたもや提供さ…
satocchia @ Re[1]:Pale Moon日本語化トラブル(06/06) zui_9さんへ 本日、確認しました。ようや…
zui_9 @ Re:Pale Moon日本語化トラブル(06/06) 上記リンク「Githubのプロジェクト」の左…
わたなべ@ Re:powershellコンソール、見づらくありませんか?(08/26) 初めまして、この情報最高です! 背景を白…

フリーページ

2019.11.20
XML
カテゴリ: powershell
以前書いたもの ​がなんとなく動作が怪しかったのでリファイン。

$linesに空文字を2つ追加しているのは無意味ではありません。
これを付けておかないとソースの末尾に改行を付加しないと動きません。

PsOnBatTmplate.cmd

@SET self=%0
@SET args=%* &powershell -command "$lines=gc %Self%;$lines[2..($lines.length-1)],'',''" |powershell -windowstyle hidden -executionpolicy bypass -sta -command -& goto:EOF
#######################################################################################################
#引数処理

#二重引用符中の空白を除き、連続空白を1個のセパレータとして引数配列に分割する。
#######################################################################################################
$argstr        =$env:args
$arguments    =@()
$space        ="<space>"
while( $argstr -match $space ){
    $space    +="_"
}

$spacers    =@()
$regex        =[regex]"`"[^`"]+`""#"エディタの文字列色別表示を満足させるための引用符。外してOK
$matches    =$regex.Matches( $argstr )

    $from    =$_.value
    $to        =$from -replace " ", $space
    $spacers    +=,@{
        from    =$from
        to        =$to

}
$spacers|%{
    if (!$_){return}
    $argstr    =$argstr.replace( $_.from, $_.to )
}
$argstr -replace " +", " " -split " "|%{
    if ( !$_ ){return}
    $arg    =$_
    $spacers|%{
        $arg    =$arg.replace( $_.to, $_.from )
    }
    $arguments    +=,$arg
}
#############################################################################################################
#以下、powershellスクリプト領域
#############################################################################################################
<# 動作テスト コメントを外してメッセージボックスが表示されたら正常動作
add-type -assembly system.windows.forms
[system.windows.forms.messagebox]::show("$Env:Self " + ($arguments -join ","))
#>





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2019.11.20 11:19:53コメント(0) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Design a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: