![]() |
Изменить название объекта в зависимости от i
Добрый день! Буду благодарен, если кто-то поможет. Не очень разбираюсь в программировании, пытался найти ответ в google, но не удалось.
Есть скрипт вида: for ($i=0; $i - le 14; $i++) { Copy-Item-Path $path-Destination $A%$i%-Force } Так, естественно не работает, вопрос как сделать, чтобы у меня копирование шло в -Destination $A0 - $A14? Переменные: $path="\\fs03\Distrib\123.exe" $A0="\\fs03\inst0\123.exe" $A1="\\fs03\inst1\123.exe" $A2="\\fs03\inst2\123.exe" и так далее для A Заранее спасибо за ответ! |
Во-первых, убрать пробелы между «-» и названием параметра или операции. Во-вторых, где определения переменной «$path», «$A»?
|
Поправил пробелы, определения переменных добавил
|
obseoe, а зачем такое неудобное использование:
Цитата:
Код:
$sSourceFile = "\\fs03\Distrib\123.exe" |
Спасибо за ответ!
Массив не догадался использовать, с другой стороны реальный путь для каждой переменной длиннее и их 14 штук, получается очень длинная строка, по-моему это не удобно. Поэтому я оставил эти переменные и изменил $aDestPaths = $aDestPaths = "\\fs03\inst0", "\\fs03\inst1", "\\fs03\inst2" на $aDestPaths = $A0, $A1,.., $A14 У вас очень красивый код, я пока так не умею =) Вот только не пойму как теперь изменить, чтобы выполнялось следующее: Кроме копирования файла в нужную директорию, мне нужно запустить этот файл из этой директории (то есть сначала сделать туда change dir, а потом запуск). Написал вот так, до момента смены директории, а дальше нужно сделать запуск и я запутался: $A0="\\fs03\inst0" $A1="\\fs03\inst1" $A2="\\fs03\inst2" $B0="\\fs03\inst0\123.exe" $B1="\\fs03\inst1\123.exe" $B2="\\fs03\inst2\123.exe" $sSourceFile = "\\fs03\Distrib\123.exe" $aDestPaths = $A0, $A1, $A2 $aDestFile = $B0, $B1, $B2 if(Test-Path -Path $sSourceFile -PathType Leaf) { $aDestPaths | ForEach-Object -Process { if(Test-Path -Path $_ -PathType Container) { Copy-Item -Path $sSourceFile -Destination $_ -Force cd $_ $aDestFile ; вот собственно тут я и не пойму как его добавить, сделать еще один цикл? Но какой? Или счетчик? } else { Write-Host "Can't find destination path [$_]" -ForegroundColor Red } } } else { Write-Host "Can't find source file [$sSourceFile]" -ForegroundColor Red } |
Цитата:
Код:
$aDestPaths = ` Цитата:
|
|
obseoe, ну, так Вам запускать-то приложение нужно на удалённых машинах, так?
|
Не совсем понимаю к чему вопрос, поэтому подробно распишу:
|
Вот так выглядит код на текущий момент:
$storageDir = "\\fs01\Distrib\Бухгалтерские\Бухсофт 2014" $webclient = New-Object System.Net.WebClient $url = "http://download.buhsoft.ru/Zarplata2014.exe" $file = "$storageDir\Zarplata2014.exe" $webclient.DownloadFile($url,$file) $sSourceFile = "\\fs01\Distrib\Бухгалтерские\Бухсофт 2014\Zarplata2014.exe" $aDestPaths = ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Agor\Zarplata2014.exe", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Niso\Zarplata2014.exe", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Fina\Zarplata2014.exe", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Koe\Zarplata2014.exe", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Goe\Zarplata2014.exe", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Empty\Zarplata2014.exe", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Empty2\Zarplata2014.exe", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Dsz\Zarplata2014.exe", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Dso\Zarplata2014.exe", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Dso2\Zarplata2014.exe", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Dso3\Zarplata2014.exe", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\abc\Zarplata2014.exe", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\abc_auto\Zarplata2014.exe", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\aa\Zarplata2014.exe", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\bb\Zarplata2014.exe" $aDestFolders = ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Agor", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Niso", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Fina", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Koe", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Goe", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Empty", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Empty2", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Dsz", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Dso", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Dso2", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\Dso3", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\abc", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\abc_auto", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\aa", ' "\\fs01\Programs_Shared_Folder\Accounting\Buhsoft\Buhsoft2014\bb" if(Test-Path -Path $sSourceFile -PathType Leaf) { $aDestPaths | ForEach-Object -Process { if(Test-Path -Path $_ -PathType Container) { Copy-Item -Path $sSourceFile -Destination $_ -Force } else { Write-Host "Can't find destination path [$_]" -ForegroundColor Red } } } else { Write-Host "Can't find source file [$sSourceFile]" -ForegroundColor Red } В итоге файл скачивается и копируется во все нужные директории, далее нужно его запустить оттуда (сделав cd в текущую директорию запуска), не понимаю как. Буду благодарен за ответ! |
Время: 03:42. |
Время: 03:42.
© OSzone.net 2001-