Имя пользователя:
Пароль:
 

Показать сообщение отдельно
jbk jbk вне форума Автор темы

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


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

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


Допилил скрипт сам, правда убрал папку Desktop:

Скрытый текст
Код: Выделить весь код
'============================================  
'Перенос содержимого десктопа пользователя  
'============================================  
 
On Error Resume Next  
Set SHELL = CreateObject ("WScript.Shell")  
Set SF = SHELL.SpecialFolders  
Set objFSO = CreateObject("Scripting.FileSystemObject")  
Set objFolder = objFSO.GetFolder(SF("Desktop"))  
Set colSubfolders = objFolder.Subfolders  
Set WshNet = CreateObject ("WScript.Network")  
Set objNet = WScript.CreateObject("WScript.Network") 
Set FSO = CreateObject("scripting.filesystemobject")

sUserName = WshNet.UserName 
folderToCheckFor = "\\filesrv\profiles$\"+sUserName
If (FSO.FolderExists(folderToCheckFor)) = False Then 
FSO.CreateFolder(folderToCheckFor) 
End If 
 
'Используя рекурсию сбрасываем атрибуты всех файлов во всех каталогах и подкаталогах десктопа.  
'Необходимо для последующего их удаления.  
 
Set objParentFolder = objFSO.GetFolder(SF("Desktop"))  
ShowSubfolders objParentFolder  
Sub ShowSubFolders(Folder)  
For Each Subfolder in Folder.SubFolders  
Set objSubFolder = objFSO.GetFolder(Subfolder.Path)  
ShowSubFolders Subfolder  
For Each efile in objSubFolder.Files  
Set gFILE = objFSO.GetFile (efile)  
gFILE.Attributes = 0  
Next  
Next  
End Sub  
 
'копируем с последующим удалением все каталоги десктопа (соответственно с их содержимым).  
'Использование здесь CopyFolder вместо MoveFolder связано с возможностью метода CopyFolder перезаписывать файл,  
'если такой существует в целевой папке.  
 
For Each objSubfolder in colSubfolders  

'WScript.Echo objFSO.GetFolder(SF("Desktop"))+"\"+objSubfolder.Name
'WScript.Echo DDir+WshNet.UserName+"\"

objFSO.CopyFolder objFSO.GetFolder(SF("Desktop"))+"\"+objSubfolder.Name, folderToCheckFor+"/"  
objFSO.DeleteFolder objFSO.GetFolder(SF("Desktop"))+"\"+objSubfolder.Name  
Next  
 
'теперь перебираем все файлы которые находятся на рабочем столе, и если их тип не ярлык,  
'то сбрасываем атрибут на 0, копируем и убиваем.  
 
For Each efile in objFolder.Files  
Set gFILE = objFSO.GetFile (efile)  
fEXT = objFSO.GetExtensionName (efile.Path)  
If LCase (fEXT)<>"lnk" then  
gFILE.Attributes = 0  
objFSO.CopyFile efile, folderToCheckFor+"/"  
objFSO.DeleteFile efile  
End If  
Next

Последний раз редактировалось jbk, 24-03-2015 в 09:25.


Отправлено: 12:12, 23-03-2015 | #7