Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Скрипт для переноса файлов по заданным параметрам

Ответить
Настройки темы
PowerShell - Скрипт для переноса файлов по заданным параметрам

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Kakazabr
Дата: 27-04-2016
Здравствуйте, появилась задача написать скрипт...



Помогите пожалуйста в решении задачки. Мое знакомство с PS состоялось не так давно, и знаний недостаточно...

Отправлено: 21:41, 26-04-2016

 

Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Например (PowerShell v5):
Код: Выделить весь код
param(
  [Parameter(Mandatory=$true, Position=0)]
  [ValidateScript({Test-Path $_})]
  [ValidateNotNullOrEmpty()]
  [String]$From,
  
  [Parameter(Mandatory=$true, Position=1)]
  [ValidateScript({Test-Path $_})]
  [ValidateNotNullOrEmpty()]
  [String]$To
)

begin {
  function private:Get-UniqueName {
    [GUID]::NewGuid() -replace '-', ''
  }
  
  function private:Find-Criteria([String]$Path) {
    (Get-ChildItem $Path -File -Recurse).Where{
      [Math]::Floor($_.Length / 1Kb) -gt 200 -and `
      ((Get-Date) - $_.CreationTime).Days -gt 60
    } | Select-Object -ExpandProperty FullName
  }
}
process {
  (Find-Criteria $From).ForEach{
    Copy-Item $_ "$To\$(Get-UniqueName)$(
     [IO.Path]::GetExtension($_)
    )" -Verbose 4>&1 | Tee-Object "$pwd\log.txt" -Append
  }
}

Последний раз редактировалось greg zakharov, 27-04-2016 в 09:39.

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:28, 27-04-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Код: Выделить весь код
$dest = 'C:\MyPath'
ls -fi *.txt|?{((date)-$_.CreationTime).Days -gt 60 -and $_.Length -gt 10kb}|%{mi $_.FullName "$dest\$(date -U %Y-%m-%d)_$($_.Name)"}

Отправлено: 12:25, 27-04-2016 | #3


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо большое! Заработало.
Остался последний штрих... Производить логирование. Out-File не срабатывает. Где-то слышал, что у Move есть ключик на вывод...
Или может быть подскажите более простой способ записывать лог в файл?

Отправлено: 15:49, 27-04-2016 | #4


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Во-первых
Код: Выделить весь код
PS C:\> man Out-File
Во-вторых
Код: Выделить весь код
PS C:\> man Tee-Object
В-третьих
Код: Выделить весь код
PS C:\> man about_Redirection
В-четвертых, какая версия PowerShell?

Отправлено: 16:29, 27-04-2016 | #5


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


PowerShell 4 версии

Отправлено: 16:34, 27-04-2016 | #6


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Если четверка, то:
Код: Выделить весь код
... | %{mi $_.FullName "$dest\$(date -U %Y-%m-%d)_$($_.Name)" -ve 4>&1|tee log.txt -ap}
По-хорошему же вообще следовало бы использовать методы-расширения, вместо альясов ? и %.

Отправлено: 16:39, 27-04-2016 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата greg zakharov:
По-хорошему же вообще следовало бы использовать »
…и не следовало править задним числом свои сообщения. Kakazabr, зачем убрали задание?

Отправлено: 21:04, 27-04-2016 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Скрипт для переноса файлов по заданным параметрам

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] скрипт переноса файлов с директории в директорию Daemonstar Скриптовые языки администрирования Windows 16 25-01-2018 13:11
Прочее - Автоопределение и настройка сети по заранее заданным параметрам. Возможно ли? (Win 7) goodguy Сетевые технологии 5 16-05-2014 06:47
Любой язык - Скрипт для распределения файлов по папкам кучками по n-ому размеру DmitryAnatolich Скриптовые языки администрирования Windows 9 06-05-2013 15:20
CMD/BAT - Не срабатывает скрипт переноса файлов по размеру - !!! с условием переименования !!! dark-------13 Скриптовые языки администрирования Windows 0 19-03-2012 15:27
скрипт для переноса настроек на переустановленную XP Dirk Diggler Автоматическая установка Windows 2000/XP/2003 39 28-02-2009 14:50




 
Переход