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

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

Ответить
Настройки темы
CMD/BAT - [решено] Перемещение файлов в корзину с раб. стола

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


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

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


Здравствуйте, профессионалы программирования!

Нужен скрипт VBS, а в идеале CMD, вообщем чем проще тем лучше, который бы перемещал (не удалял) файлы разных разрешений, но КРОМЕ ЯРЛЫКОВ, с рабочего стола в корзину. А я потом этот скрипт в шедуллер закину поставлю время и будет мне счастья. Никак не могу сделать, у меня ума хватает только на copy. Всех милых дам с праздником 8 марта!

С уважением, дилетант Дмитрий!

Отправлено: 17:43, 07-03-2014

 

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


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

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


Да. Главное забыл упомянуть, это должно использовать директорию %userprofile%, если я правильно выражаюсь. Вообщем заходит сотрудник у него документ на его пк пролежал x дней на раб столе и этот файл по истечении x дней будет перенесен в корзину.

Заранее всем благодарен!

Отправлено: 17:50, 07-03-2014 | #2



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

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


Ветеран


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

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


1. Зачем удалять всё подряд с Рабочего стола пользователя?
2. Почему удалять в Корзину, а не просто удалять? В чём глубинный смысл?

Отправлено: 18:13, 07-03-2014 | #3


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


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

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


Политика безопасности. Никак не заставить сотрудников работать в сетевой папки, они все переносят на раб. стол, а так их запарит без конца лезть в корзину и восстанавливать файлы. Таким образам решу главную задачу по т.б

Отправлено: 18:27, 07-03-2014 | #4

exo exo вне форума

Аватара для exo

Ветеран


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

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


Цитата ses333ser:
Никак не заставить сотрудников работать в сетевой папки, »
перенаправление папки "Рабочий стол" и не только на сервер

-------
Вежливый клиент всегда прав!

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

Отправлено: 18:30, 07-03-2014 | #5


Ветеран


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

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


ses333ser, поставленная задача (а не та, что Вы придумали) решается иными методами.

Отправлено: 18:40, 07-03-2014 | #6


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


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

Профиль | Отправить 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

mwz mwz вне форума

Аватара для mwz

Ушел из жизни


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

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


ses333ser,
Цитата ses333ser:
objFinishFolder = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERPROFILE%") & "C:\RECYCLER\"
....
objFile.Move objFinishFolder »
ничего не даст (точнее даст -- но не то, что вы ожидаете): Проводник помещает файлы в Корзину не простым перемещением файла, а с одновременным его переименованием и созданием парного маркерного файла в Win-7, или (в WinXP) с переименованием исходного файла и занесением информации о его исходном имени и местоположении в скрытый файл INFO2, лежащий в папке корзины конкретного пользователя на конкретном диске.

Все файлы, попавшие в папки Корзины без учёта этих требований, при открытии корзины видны не будут, чем и пользовались некоторые трояны, помещавшие себя в корзину.

И помещает не в папку "C:\RECYCLER\", а в папку "C:\RECYCLER\{SID_пользователя}" в WinXP, или в "C:\$Recycle.Bin\{SID_пользователя}" в Win-7. Кроме того (ну для ваших требований это не является существенным), файлы попадают в папки корзин только тех дисков, на которых они лежали -- т.е. файл с диска D: при удалении в корзину не может попасть ни в какую из папок корзины других дисков, а только в папку корзины на этом же диске D:

-------
Mikhail Zhilin


Последний раз редактировалось mwz, 13-03-2014 в 22:52.

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

Отправлено: 22:23, 13-03-2014 | #8


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


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

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


Спасибо! А если просто удалять через этот скрипт? Есть проблема - рекурсия вроде бы есть, а вроде бы нет, т.к выборка происходит с учетом создания файла, а потом смотрит на модификацию и удаляет по модификации. Можно как-нибудь удалять файлы только по дате изменения без учета создания!

Отправлено: 11:17, 14-03-2014 | #9


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


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

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


А еще в самом идеале - чтобы файлы перемещались в определенную папку на раб. столе, ну скажем "Папка на удаления" перемещались файлы с изменением атрибута на чтение и потом по истечении 30 дней удалялись во все. С атрибутом вроде бы я разобрался Attrib=1. Вот нужна рекурсия, я так понимаю она делается посредством команды Dim вот куда ее вставить не могу разобраться.

Отправлено: 12:13, 14-03-2014 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - Как убрать мусорную корзину со стола? 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




 
Переход