2017-05-12 1 views
1

は、いくつかの助けが素晴らしいしてくださいだろう、私は私から読み取るスクリプトを持っていると思った読書値

 
[Paths] 
Sourcepath="y:\enterprise\team\input" 
TempPath="y:\enterprise\team\temp" 
DestPath="y:\enterprise\team\Output" 

内部に次の値を持つconfig.txtあるテキストファイルを持っています設定ファイルとは、そのすべてのヘルプは素晴らしいことだPowerShellのために

copy-item 'sourcepath' destination = temppath 

新にいずれか先からファイルをコピー、それを動かします!

+0

'config.txt'はINI形式であるため、そのように解析して結果のハッシュテーブルからパスを取得します。 INIファイルを解析するためのPowerShellコードは簡単に見つかります。 –

+1

Copy-Itemコマンドの形式が間違っています。[Copy-Item](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.management/copy-us)のドキュメントを参照してください。 item)を使用してコマンドを正しく使用する方法を調べます。ドキュメント内の[examples](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.management/copy-item#examples)も役立ちます。 –

答えて

-1

情報をPowerShellに読み込むには、データをインポートする必要があります。プレーンテキストファイルの場合Get-Contentが一般的な方法です。別の答えに書かれているように、テキストファイルはINI形式であるため、スクリプトで使用できるようにするためにはテキストファイルを操作する必要があります。

他の目的のためにconfig.txtファイルを使用していますか?このスクリプトの場合のみ、メインスクリプトの変数として3つのパスを宣言することをお勧めします。

他のシステムで使用されていて、その形式にとどまる必要がある場合は、各行の解析方法を理解する必要があります。 Get-Contentは、各行を通過できるように配列として引き出します。

他のシステムで使用されていてフォーマットを変更できる場合は、それぞれの列が異なるパス名であるCSVに切り替えることをおすすめします。 Import-CSVを使用すると、$ variable.SourcePath、$ variable.TempPath、および$ variable.DestPathを実行できます。

1

Use PowerShell to Work with Any INI File

あなたはこの機能を使用することができます。

function Get-IniContent ($filePath) 
{ 
    $ini = @{} 
    switch -regex -file $FilePath 
    { 
     “^\[(.+)\]” # Section 
     { 
      $section = $matches[1] 
      $ini[$section] = @{} 
      $CommentCount = 0 
     } 
     “^(;.*)$” # Comment 
     { 
      $value = $matches[1] 
      $CommentCount = $CommentCount + 1 
      $name = “Comment” + $CommentCount 
      $ini[$section][$name] = $value 
     } 
     “(.+?)\s*=(.*)” # Key 
     { 
      $name,$value = $matches[1..2] 
      $ini[$section][$name] = $value 
     } 
    } 
    return $ini 
}