![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - копирование с добавлением копии |
|
PowerShell - копирование с добавлением копии
|
Новый участник Сообщения: 2 |
Здравствуйте увидел что вы помогали людям в создании скриптов для копирования без замены файлов, не могли бы вы помочь в еще одном таком же?
нужно чтоб с рабочего стола копировал (желательно перемещал) все файлы и папки на диск T:\ кроме *.ini *.lnk и если на диски T:\ уже имеются файлы или папки с таким-же именем то создавал их копии последовательно (файл.txt не заменял а делал файл_1.txt, файл_2.txt и так далее) спасибо. |
|
Отправлено: 09:51, 18-05-2015 |
Пользователь Сообщения: 114
|
Профиль | Отправить PM | Цитировать $dest = "T:\" $files = Get-ChildItem -Path "$env:USERPROFILE\Desktop\" -Exclude *.ini, *.lnk if ($files -ne $null) { foreach ($file in $files) { $f = $file.Name if (Test-Path (Join-Path $dest $file.Name)) { $n = 0 while ((Test-Path (Join-Path $dest $f)) -eq $true) { $f = $file.BaseName + "_" + ++$n + $file.Extension } } Move-Item $file.FullName (Join-Path $dest $f) } } |
Отправлено: 22:41, 18-05-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Пару-тройку интересных "трюков" в свой код "впихнул":
$source=[System.Environment]::GetFolderPath('Desktop') $destination='T:' $exclude=@('*.ini','*.lnk') if(!(Test-Path -LiteralPath ($x=Join-Path $destination $Null) -PathType Container)){ """$destination"" is not found." $Host.UI.RawUI.ReadKey()|Out-Null} else{ gci $source -Exclude $exclude -Force|%{ if(!(Test-Path -LiteralPath ($y="$x$($_.Name)"))){} else{ for($i=1;;$i++){ if(!(Test-Path -LiteralPath ($y="$x$($_.BaseName)_$i$($_.Extension)"))){Break} } } mi $_.FullName $y } } . |
Отправлено: 04:56, 19-05-2015 | #3 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Цитата:
Спасибо |
|
Отправлено: 02:18, 21-05-2015 | #4 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата tosina:
Я не писал "новые" (хотя новизна всегда относительна) и слово "трюки" писал в кавычках (вот для языка пакетных файлов можно б было писать и без кавычек, -- там ни один серьёзный код без них не обходится ![]() Цитата Georgio:
Поскольку в качестве значения переменной "destination" может быть указана директория как с закрывающим обратным слешем, так и без него, то данный код унифицирует это значение для дальнейшего использования только со слешем. Кстати, только сейчас обратил внимание, что при наличии слеша можно было не писать Цитата Georgio:
Цитата Georgio:
Казалось бы, что это при выполнении условие ничего не происходит, так как в фигурных скобках ничего нет, но тем не менее переменной присваивается значение в самом условии, которое затем может быть изменено, если это условик окажется ложным, причём аналогичным способом: Цитата Georgio:
Цитата Georgio:
Здесь используется бесконечный цикл с последующим прерыванием в случае справедливости условия. |
|||||||
Отправлено: 11:15, 21-05-2015 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Проблема с добавлением компьютера в домен | voler | Microsoft Windows NT/2000/2003 | 27 | 03-02-2013 10:16 | |
Прочие БД - Проблема с добавлением бухгалтерии в предприятие | Work700 | Программирование и базы данных | 3 | 23-07-2012 01:49 | |
Использование - Создание копии диска Windows Xp, создание копии для резерва | withsouth | Лицензирование продуктов Microsoft | 15 | 31-10-2011 03:24 | |
проблемы с добавлением ОЗУ | Kozyar Roman | Ноутбуки | 2 | 27-01-2011 14:10 | |
Разное - Перед добавлением аддона запуск *.cmd | Bolk | Наборы обновлений для Windows XP/2003/Windows 7 | 4 | 12-01-2008 22:14 |
|