Скрипт Powershell для многократного просмотра переменных - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть 4 переменные, и я хочу, чтобы скрипт выполнял эти переменные несколько раз, и я подумал о том, чтобы поместить каждую из переменных в их собственный файл, а затем перебрать файлы и получить основной сценарий, который принимает переменные зацикливанием.

Мне интересно, умно ли это или я могу сделать это проще, в принципе это выглядит так

File1
$SFTP_NAME = "PATH_1"
$CUSTOMER_NAME = "Customer_1"
$BACKUP_LOCATION = "Customer_1"
$IP_ADDRESS = 192.168.159.11


File2
$SFTP_NAME = "PATH_2"
$CUSTOMER_NAME = "Customer_2"
$BACKUP_LOCATION = "Customer_2"
$IP_ADDRESS = 192.168.159.12



Main Script
    New-Item -ItemType directory -Path \\ftp\Customers\$SFTP_NAME\$CUSTOMER_NAME
    New-Item -ItemType directory -Path \\ftp\Customers\$SFTP_NAME\$CUSTOMER_NAME\$BACKUP_LOCATION
    New-Item -ItemType directory -Path \\ftp\Customers\$SFTP_NAME\$CUSTOMER_NAME\$IP_ADDRESS

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Создайте массив и сохраните в нем ваши данные конфигурации, используя пользовательский объект.Затем выполните цикл по массиву и используйте данные для создания ваших элементов.

$fileList = @()

$fileList += New-Object psobject -Property @{ "SFTP_NAME"="PATH_1"
            "CUSTOMER_NAME"="Customer_1"
            "BACKUP_LOCATION"="Customer_1"
            "IP_ADDRESS"="192.168.159.11"}

$fileList += New-Object psobject -Property @{ "SFTP_NAME"="PATH_2"
            "CUSTOMER_NAME"="Customer_2"
            "BACKUP_LOCATION"="Customer_2"
            "IP_ADDRESS"="192.168.159.12"}

$fileList | foreach {

    New-Item -ItemType directory -Path "\\ftp\Customers\$($_.SFTP_NAME)\$($_.CUSTOMER_NAME)"
    New-Item -ItemType directory -Path "\\ftp\Customers\$($_.SFTP_NAME)\$($_.CUSTOMER_NAME)\$($_.BACKUP_LOCATION)"
    New-Item -ItemType directory -Path "\\ftp\Customers\$($_.SFTP_NAME)\$($_.CUSTOMER_NAME)\$($_.IP_ADDRESS)"
}
0 голосов
/ 24 сентября 2018

Я рекомендую один файл CSV с четырьмя столбцами:

$configurations = @'
SFTP_NAME,CUSTOMER_NAME,BACKUP_LOCATION,IP_ADDRESS
PATH_1,Customer_1,Customer_1,192.168.159.11
PATH_2,Customer_2,Customer_2,192.168.159.12
'@ | ConvertFrom-Csv

#or prepare csv file in Excel and import
#$configurations = Import-Csv Csvfile.csv

$configurations | % {
    New-Item -ItemType directory -Path "\\ftp\Customers\$($_.SFTP_NAME)\$($_.CUSTOMER_NAME)"
    New-Item -ItemType directory -Path "\\ftp\Customers\$($_.SFTP_NAME)\$($_.CUSTOMER_NAME)\$($_.BACKUP_LOCATION)"
    New-Item -ItemType directory -Path "\\ftp\Customers\$($_.SFTP_NAME)\$($_.CUSTOMER_NAME)\$($_.IP_ADDRESS)"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...