AZJIO

LiveCD копировать профиль Firefox

Feb 15th, 2018
646
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 3.80 KB | None | 0 0
  1. #NoTrayIcon
  2.  
  3. ; Запустить скрипт, он проверит диски HDD кроме B: и X:, найдёт пользовательские папки, найдёт в них профили FF, предложит скопировать один. После этого можно запускать FF
  4.  
  5. #include <File.au3>
  6. ; #include <Array.au3>
  7.  
  8. $aArray = DriveGetDrive("FIXED")
  9. If @error Then Exit MsgBox(4096, 'Ошибка', 'Произошла ошибка при поиске дисков.')
  10.  
  11. $c = 0
  12. For $i = 1 To $aArray[0]
  13.     If $aArray[$i] = 'B:' Or  $aArray[$i] = 'X:' Or Not FileExists($aArray[$i]  & '\Users') Then ContinueLoop
  14.     $c += 1
  15.     $aArray[$c] = StringUpper($aArray[$i])
  16. Next
  17. If Not $c Then Exit MsgBox(4096, 'Ошибка', 'Не найдена папка "Пользователь"')
  18. ReDim $aArray[$c+1]
  19. $aArray[0] = $c
  20.  
  21. $sFileList = ''
  22. Local $aDirNot[5] = ['All Users', 'Default', 'Default User', 'Все пользователи', 'Public']
  23.  
  24. For $i = 1 To $aArray[0]
  25.     $aFileList = _FileListToArray($aArray[$i]  & '\Users')
  26.     For $x = 1 To $aFileList[0]
  27.         If _FO_IsDir($aArray[$i]  & '\Users\' & $aFileList[$x]) Then
  28.             For $y = 0 To 4
  29.                 If $aFileList[$x] = $aDirNot[$y] Then
  30.                     $aFileList[$x] = ''
  31.                     ContinueLoop
  32.                 EndIf
  33.             Next
  34.             If $aFileList[$x] Then $sFileList &= $aArray[$i]  & '\Users\' & $aFileList[$x]  & '|'
  35.         EndIf
  36.     Next
  37. Next
  38. If $sFileList Then $sFileList = StringTrimRight($sFileList, 1)
  39. ; массив папок пользователя
  40. $aArray = StringSplit($sFileList, '|')
  41.  
  42. ; теперь для Firefox
  43. $sDest = 'X:\Users\Default\AppData\Roaming\Mozilla\Firefox'
  44. $c = 0
  45. For $i = 1 To $aArray[0]
  46. ; MsgBox(0, 'Сообщение', $aArra[$i]y & '\AppData\Roaming\Mozilla\Firefox')
  47.     If Not FileExists($aArray[$i] & '\AppData\Roaming\Mozilla\Firefox') Then ContinueLoop
  48.     $c += 1
  49.     $aArray[$c] = $aArray[$i] & '\AppData\Roaming\Mozilla\Firefox'
  50. Next
  51. If Not $c Then Exit MsgBox(4096, 'Ошибка', 'Не найден профиль Firefox')
  52. ReDim $aArray[$c+1]
  53. $aArray[0] = $c
  54. If $c = 1 And MsgBox(4096 + 4, 'Копировать?', 'Хотите скопировать найденный профиль:' & @CRLF & '"' & $aArray[1] & '"' & @CRLF & 'в папку:' & @CRLF & '"' & $sDest  & '"?') = 6 Then
  55.     $e = 2
  56.     $e -= DirCopy($aArray[1] & '\Profiles', $sDest & '\Profiles', 1)
  57.     $e -= FileCopy($aArray[1] & '\profiles.ini', $sDest, 9)
  58.     If $e Then Exit MsgBox(4096, 'Ошибка', 'Ошибка при копировании = ' & $e)
  59.     MsgBox(4096, 'Готово', 'Готово, скопировано')
  60.     Exit
  61. EndIf
  62.  
  63. If $c > 1 Then
  64.     $sFileList = ''
  65.     For $i = 1 To $aArray[0]
  66.         $sFileList &= $i & ' - ' & $aArray[$i] & @CRLF
  67.     Next
  68.     $sFileList = StringTrimRight($sFileList, 2)
  69.     $sFileList = StringReplace($sFileList, '\AppData\Roaming\Mozilla\Firefox', '...')
  70.     $sFileList = StringReplace($sFileList, ':\Users\', ':\...')
  71.     $answer = InputBox("Выберите номер профиля", $sFileList, "1", " M1", 300, 20*$c + 100, Default, Default)
  72.     If @error = 1 Then Exit ; Отмена
  73.     If @error Then Exit MsgBox(4096, 'Ошибка', 'Ошибка, код = ' & @error)
  74.     If Not StringIsDigit($answer) Then Exit MsgBox(4096, 'Ошибка', 'Вводите только число')
  75.     $answer = Number($answer)
  76.     If $answer = 0 Or $answer > $aArray[0] Then Exit MsgBox(4096, 'Ошибка', 'Число не соответствует диапазону')
  77.     $e = 2
  78.     $e -= DirCopy($aArray[$answer] & '\Profiles', $sDest & '\Profiles', 1)
  79.     $e -= FileCopy($aArray[$answer] & '\profiles.ini', $sDest, 9)
  80.     If $e Then Exit MsgBox(4096, 'Ошибка', 'Ошибка при копировании = ' & $e)
  81. EndIf
  82. Exit
  83.  
  84.  
  85. Func _FO_IsDir($sTmp)
  86.     $sTmp = FileGetAttrib($sTmp)
  87.     Return SetError(@error, 0, StringInStr($sTmp, 'D', 2) > 0)
  88. EndFunc   ;==>_FO_IsDir
Add Comment
Please, Sign In to add comment