0

文字列を受け取り、部分文字列を分離して返す関数を書こうとしているだけです。その値は csv ファイルにコピーされます。

私の関数は次のようになります。

Function FileName ($msg)
{
$msg -match ', (.*) owned'
$result=$matches[1]
return $result
}

たとえば、結果に「New Text Document.txt - Notepad」を含めたい場合は、次のように呼び出します。

FileName "Document 3, New Text Document.txt - Notepad owned by SYSTEM on \\COMPUTERNAME was printed on {736660DE-4F30-4949-A1B1-68701735DAA8} through port {736660DE-4F30-4949-A1B1-68701735DAA8}.  Size in bytes: 127183. Pages printed: 1. No user action is required."

しかし、それをcsvファイルにエクスポートすると、「True New Text Document.txt - Notepad」と表示されます。「True」を削除するにはどうすればよいですか?

4

1 に答える 1

2

-match一致が見つかったかどうかに応じて $true または $false を返すブール演算子です。変数で演算子を実行した結果を取得したり、リダイレクトしたりしない場合、それは関数の出力の一部になります。通常、次のように使用します。

function FileName ($msg)
{
    if ($msg -match ', (.*) owned')
    {
        $matches[1]
    }
    else { .. figure out what to do here .. }
}
于 2013-01-03T00:21:09.883 に答える