1

いくつかの基本的な文字列操作を支援するために、powershell スクリプトを作成する際に助けが必要です。問題が発生するのに十分なpowershellを知っていますが、これを機能させるための構文またはコーディングを理解できません。

次のようなテキストファイルがあります-

Here is your list of servers:
server1
server2.domain.local
server3
Total number of servers: 3

そのテキスト ファイルを取得して、最初と最後の行を削除する必要があります (常に最初と最後です)。次に、1 行おきに取得し、基本的にそれを CSV ファイルに変換する必要があります。

最終的な出力は、次のようなテキスト ファイルである必要があります -

server1,server2.domain.local,server3

どこから始めるべきかについて何か提案はありますか? ありがとう!

4

3 に答える 3

1

あなたが試すことができます :

$a = Get-Content C:\temp\M.TXT # Where M.TXT is your original file
$a[1..($a.count-2)] | % {$s=""} {$s+=$_+","}{$s.trim(",") | Out-File m.csv} # M.CSV is the result file
于 2012-07-10T03:25:46.173 に答える
0

範囲演算子を使用できます。

$content = Get-Content D:\Scripts\Temp\test1.txt
$content[1..($content.count-2)] -join ',' | Out-File servers.txt

csv ファイルにエクスポートして、それをインポートしてサーバー名を操作できるようにすることをお勧めします。

$content = Get-Content D:\Scripts\Temp\test1.txt
$content[1..($content.count-2)] | Select-Object @{Name='ComputerName';e={$_}} | Export-Csv servers.csv -NoTypeInformation
于 2012-07-10T06:46:59.563 に答える
0

他のいくつかの方法を次に示します。

(Get-Content foo.txt | Where {$_ -notmatch '^\s*$'} | Select -Skip 1 | 
     Select -Skip 1 -Last 2E9) -join ',' > foo.csv

また、 PowerShell Community Extensions (Skip-Object 用)を持っている場合:

(Get-Content foo.txt | Where {$_ -notmatch '^\s*$'} | 
     Skip-Object -First 1 -Last 1) -join ',' > foo.csv

Where {$_ -notmatch '^\s*$'}によって空白行が削除されることに注意してください。

于 2012-07-10T04:23:56.903 に答える