Вероятно, это глупый вопрос, но мои способности в отношении Google увеличились великолепно - или никто больше не спрашивает/не отвечает на подобные вещи.PowerShell - ForEach Вывод на переменные для использования с MySQL
Начнем с того, что моя конечная цель, поэтому мы можем видеть, как я добрался до места, где я до сих пор: я хотел бы запустить скрипт, который автоматически проверяет пут путей для размера папки. Я бы хотел, чтобы он возвращал размер папки в GB. Затем я хотел бы импортировать размеры папок в базу данных MySQL, которую я установил для целей отчета.
Удивительно (и несколько неудивительно), только вчера, когда размеры папок были довольно тяжелой болью. Прошел через множество различных попыток/функций от других людей в interwebs/etc.
Итак, вот где я кончался:
$dirlist = import-csv C:\Users\Public\Folders.csv
foreach ($path in $dirlist)
{
$name = $path.name
echo $path >> C:\Users\Public\sizes.txt
$totalsize = (Get-ChildItem $name -recurse -force | measure-object -property length -sum)
"{0:N2}" -f($totalsize.sum/1GB) >> C:\Users\Public\sizes.txt
}
Это очень хорошо, я думаю. Он дает мне список всех размеров, в их собственных строках. Мне просто нужно назначить каждый размер своей собственной переменной. Итак, я предположил - как идиот - что я мог бы просто предварительно назначить переменную в файле Folders.csv, используя столбец «var».
Итак, я сделал это.
Затем я изменил сценарий, например, так:
$dirlist = import-csv C:\Users\Public\Folders.csv
function Get-FolderSize
{
$name = $path.name
$var = $path.var
$totalsize = (Get-ChildItem $name -recurse -force | measure-object -property length -sum)
"{0:N2}" -f($totalsize.sum/1GB) -outvariable $var
}
foreach ($path in $dirlist)
{
Get-FolderSize
}
Но это дает следующую ошибку (ы):
At line:12 char:39
+ "{0:N2}" -f($totalsize.sum/1GB) -outvariable $var
+ ~~~~~~~~~~~~
Unexpected token '-outvariable' in expression or statement.
At line:12 char:52
+ "{0:N2}" -f($totalsize.sum/1GB) -outvariable $var
+ ~~~~
Unexpected token '$var' in expression or statement.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken
Для справки, Folders.csv в основном только это:
"name","var"
"\\Server\D$\Folder","Folder1"
"\\Server2\G$\Folder","Folder2"
tl; dr // CSV нескольких путей к файлам -> Получить размер в GB -> хранить каждый размер в указанных переменных
Ах, хорошо, - так что выход будет на $ DirList, но с именами переменных изменены на значения размера. Который, я предполагаю, что я могу просто добавить столбец для ID, а затем это просто еще одна команда «foreach», чтобы перевести ее в MySQL? '$ dirlist | foreach { query = "UPDATE servers SET Size = '$ ($ _. var)' WHERE ID = '$ ($ _. id)'" Execute-MySQLNonQuery $ conn $ query' – Steve