|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Перемещение файлов в корзину с раб. стола |
|
|
CMD/BAT - [решено] Перемещение файлов в корзину с раб. стола
|
Новый участник Сообщения: 11 |
Здравствуйте, профессионалы программирования!
Нужен скрипт VBS, а в идеале CMD, вообщем чем проще тем лучше, который бы перемещал (не удалял) файлы разных разрешений, но КРОМЕ ЯРЛЫКОВ, с рабочего стола в корзину. А я потом этот скрипт в шедуллер закину поставлю время и будет мне счастья. Никак не могу сделать, у меня ума хватает только на copy. Всех милых дам с праздником 8 марта! С уважением, дилетант Дмитрий! |
|
Отправлено: 17:43, 07-03-2014 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Да. Главное забыл упомянуть, это должно использовать директорию %userprofile%, если я правильно выражаюсь. Вообщем заходит сотрудник у него документ на его пк пролежал x дней на раб столе и этот файл по истечении x дней будет перенесен в корзину.
Заранее всем благодарен! |
Отправлено: 17:50, 07-03-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать 1. Зачем удалять всё подряд с Рабочего стола пользователя?
2. Почему удалять в Корзину, а не просто удалять? В чём глубинный смысл? |
Отправлено: 18:13, 07-03-2014 | #3 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Политика безопасности. Никак не заставить сотрудников работать в сетевой папки, они все переносят на раб. стол, а так их запарит без конца лезть в корзину и восстанавливать файлы. Таким образам решу главную задачу по т.б
|
Отправлено: 18:27, 07-03-2014 | #4 |
Ветеран Сообщения: 12417
|
Профиль | Отправить PM | Цитировать Цитата ses333ser:
|
||
------- Отправлено: 18:30, 07-03-2014 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать ses333ser, поставленная задача (а не та, что Вы придумали) решается иными методами.
|
Отправлено: 18:40, 07-03-2014 | #6 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать А может что-то типа этого. Очень нужна помощь уже неделю мучаюсь. Нужен именно скрипт.
Set objFSO = CreateObject("Scripting.FileSystemObject") objStartFolder = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERPROFILE%") & "\Рабочий стол\" objFinishFolder = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERPROFILE%") & "C:\RECYCLER\" arrPath =array("objStartFolder" & "\Links") 'папки которые исключаем Set objFolder = objFSO.GetFolder(objstartfolder) Set colFiles = objFolder.Files For Each objFile in colFiles If DateDiff("D", objFile.DateLastModified, Now) > 1 Then ' проверка файлов на старость Log (objFolder.Path & "\" & objFile.Name & " - " & objFile.DateLastModified) objFile.Attributes = 0 objFile.Move objFinishFolder End If Next ShowSubfolders objFSO.GetFolder(objStartFolder) Sub ShowSubFolders(Folder) For Each Subfolder in Folder.SubFolders Set objFolder = objFSO.GetFolder(subfolder.Path) p=false i=lbound(arrpath) WHILE (p=false) and (i<=ubound(arrpath)) if (objfolder.path=arrpath(i) ) then p=true end if i=i+1 WEND if (not p) then ' Wscript.Echo objfolder.path & " - " & "udalat` mozna" ' 1) проверить файлы на старость Set colFiles = objFolder.Files For Each objFile in colFiles If DateDiff("D", objFile.DateLastModified, Now) > 1 Then ' проверка файлов на старость Log (objFolder.Path & "\" & objFile.Name & " - " & objFile.DateLastModified) objFile.Attributes = 0 objFile.Move objFinishFolder End If Next ' 2) проверить каталог на пустоту If objFolder.Subfolders.Count > 0 then ShowSubFolders SubFolder End If If subFolder.Files.Count > 0 AND subFolder.Subfolders.Count > 0 then ' MsgBox "Directory " & subFolder & "- ne pusta." else Log(subFolder.Path & " - " & subFolder.Datecreated) objFSO.DeleteFolder(subFolder.Path) End If End If Next end sub 'функция для создания log-файла. он создается рядом со скриптом, имя - дата запуска скрипта. Function Log(strLineToLog) Const ForReading = 1, ForWriting = 2 Dim fso, f, FileLog Set fso = CreateObject("Scripting.FileSystemObject") FileLog = Left(WScript.ScriptName,(Len(WScript.ScriptName)-4)) & "_" & DatePart("yyyy",Date) & "_" & DatePart("m",Date) & "_" & DatePart("d",Date) & "." & "log" Set f = fso.OpenTextFile(FileLog, 8, True) f.Write strLineToLog & vbCrLf f.Close End Function |
Отправлено: 17:53, 13-03-2014 | #7 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать ses333ser,
Цитата ses333ser:
Все файлы, попавшие в папки Корзины без учёта этих требований, при открытии корзины видны не будут, чем и пользовались некоторые трояны, помещавшие себя в корзину. И помещает не в папку "C:\RECYCLER\", а в папку "C:\RECYCLER\{SID_пользователя}" в WinXP, или в "C:\$Recycle.Bin\{SID_пользователя}" в Win-7. Кроме того (ну для ваших требований это не является существенным), файлы попадают в папки корзин только тех дисков, на которых они лежали -- т.е. файл с диска D: при удалении в корзину не может попасть ни в какую из папок корзины других дисков, а только в папку корзины на этом же диске D: |
|
------- Последний раз редактировалось mwz, 13-03-2014 в 22:52. Отправлено: 22:23, 13-03-2014 | #8 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Спасибо! А если просто удалять через этот скрипт? Есть проблема - рекурсия вроде бы есть, а вроде бы нет, т.к выборка происходит с учетом создания файла, а потом смотрит на модификацию и удаляет по модификации. Можно как-нибудь удалять файлы только по дате изменения без учета создания!
|
Отправлено: 11:17, 14-03-2014 | #9 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать А еще в самом идеале - чтобы файлы перемещались в определенную папку на раб. столе, ну скажем "Папка на удаления" перемещались файлы с изменением атрибута на чтение и потом по истечении 30 дней удалялись во все. С атрибутом вроде бы я разобрался Attrib=1. Вот нужна рекурсия, я так понимаю она делается посредством команды Dim вот куда ее вставить не могу разобраться.
![]() |
Отправлено: 12:13, 14-03-2014 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - Как убрать мусорную корзину со стола? | lerpa | Microsoft Windows 2000/XP | 8 | 13-05-2014 07:51 | |
Интерфейс - сброс разрешения раб стола | bender2003 | Microsoft Windows 7 | 1 | 17-11-2013 16:42 | |
Контекстное меню раб стола | Goodzila | Хочу все знать | 1 | 17-03-2013 04:08 | |
Постоянное обновление раб.стола | strateg1970 | Видеокарты | 8 | 25-05-2011 20:48 | |
CMD/BAT - [решено] перемещение в корзину вместо delete | AlexM | Скриптовые языки администрирования Windows | 1 | 05-02-2010 09:00 |
|