none
PS - прочитать из файла переменные RRS feed

  • Вопрос

  • Всем привет!

    Помогите, пожалуйста, написать на PS такое:

    есть файл c:\test.conf такого содержания:

    DirToBackup="C:\Test"
    excl1="*.tmp"
    excl2="*.bak"
    excl3="*mov"
    

    необходимо, чтобы скрипт прочитал этот файл и внутри себя сразу задал переменные:

    $DirToBackup="C:\Test"
    $excl1="*.tmp"
    $excl2="*.bak"
    $excl3="*mov"

    на cmd это делается так:

    set file="c:\test.conf"
    
    for /f "eol=# delims== tokens=1,2"  %%i in (%file%) do (set %%i=%%j)

    а как это сделать на PS никак понять не могу!

    Заранее благодарен всем откликнувшимся!

    23 октября 2017 г. 14:59

Ответы

  • Import-Csv C:\test.conf -Delimiter "=" -Header Name,Value | Foreach {New-Variable $_.Name $_.Value}

    • Помечено в качестве ответа Reanimator73 23 октября 2017 г. 15:21
    23 октября 2017 г. 15:09
    Отвечающий
  •  «Чукча не читатель» (с)

    PS C:\> Get-Content C:\test.conf
    DirToBackup="C:\Test"
    excl1="*.tmp"
    excl2="*.bak"
    excl3="*mov"
    PS C:\> Import-Csv C:\test.conf -Delimiter "=" -Header Name,Value
    
    Name        Value
    ----        -----
    DirToBackup C:\Test
    excl1       *.tmp
    excl2       *.bak
    excl3       *mov
    
    
    PS C:\> Import-Csv C:\test.conf -Delimiter "=" -Header Name,Value | Foreach {New-Variable $_.Name $_.Value -Verbose}
    VERBOSE: Performing the operation "New variable" on target "Name: DirToBackup Value: C:\Test".
    VERBOSE: Performing the operation "New variable" on target "Name: excl1 Value: *.tmp".
    VERBOSE: Performing the operation "New variable" on target "Name: excl2 Value: *.bak".
    VERBOSE: Performing the operation "New variable" on target "Name: excl3 Value: *mov".
    PS C:\> $DirToBackup
    C:\Test
    PS C:\> $excl1
    *.tmp
    PS C:\> $excl2
    *.bak
    PS C:\> $excl3
    *mov
    

    • Помечено в качестве ответа Reanimator73 23 октября 2017 г. 15:21
    23 октября 2017 г. 15:18
    Отвечающий

Все ответы

  • Import-Csv C:\test.conf -Delimiter "=" -Header Name,Value | Foreach {New-Variable $_.Name $_.Value}

    • Помечено в качестве ответа Reanimator73 23 октября 2017 г. 15:21
    23 октября 2017 г. 15:09
    Отвечающий
  • но это не CSV файл, у него нет полей с заголовками. Это просто текстовый файл
    23 октября 2017 г. 15:14
  •  «Чукча не читатель» (с)

    PS C:\> Get-Content C:\test.conf
    DirToBackup="C:\Test"
    excl1="*.tmp"
    excl2="*.bak"
    excl3="*mov"
    PS C:\> Import-Csv C:\test.conf -Delimiter "=" -Header Name,Value
    
    Name        Value
    ----        -----
    DirToBackup C:\Test
    excl1       *.tmp
    excl2       *.bak
    excl3       *mov
    
    
    PS C:\> Import-Csv C:\test.conf -Delimiter "=" -Header Name,Value | Foreach {New-Variable $_.Name $_.Value -Verbose}
    VERBOSE: Performing the operation "New variable" on target "Name: DirToBackup Value: C:\Test".
    VERBOSE: Performing the operation "New variable" on target "Name: excl1 Value: *.tmp".
    VERBOSE: Performing the operation "New variable" on target "Name: excl2 Value: *.bak".
    VERBOSE: Performing the operation "New variable" on target "Name: excl3 Value: *mov".
    PS C:\> $DirToBackup
    C:\Test
    PS C:\> $excl1
    *.tmp
    PS C:\> $excl2
    *.bak
    PS C:\> $excl3
    *mov
    

    • Помечено в качестве ответа Reanimator73 23 октября 2017 г. 15:21
    23 октября 2017 г. 15:18
    Отвечающий