Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] в Google Chrome сменить папку для загрузок (http://forum.oszone.net/showthread.php?t=342256)

v79italya 19-09-2019 19:19 2888657

в Google Chrome сменить папку для загрузок
 
Добрый день. Есть ли возможность кодом сменить в гугле хром папку для загрузок?
например, сейчас все загрузки сохраняются в папке по адресу C:\abc\ . надо сменить, например, на D:\bca\ .

Iska 20-09-2019 00:49 2888693

v79italya, попробуйте посредством PowerShell (без каких-либо проверок):
Код:

$aPreferences = Get-Content -Path "$($env:LocalAppData)\Google\Chrome\User Data\Default\Preferences" | ConvertFrom-Json

if(-not $aPreferences.download.default_directory) {
    $aPreferences.download | Add-Member -NotePropertyName 'default_directory' -NotePropertyValue 'C:\Downloads'
} else {
    $aPreferences.download.default_directory = 'C:\Downloads'
}

$aPreferences | ConvertTo-Json -Compress | Set-Content -Path "$($env:LocalAppData)\Google\Chrome\User Data\Default\Preferences"

не забыв предварительно сделать резервную копию файла «%LocalAppData%\Google\Chrome\User Data\Default\Preferences».

v79italya 20-09-2019 11:41 2888771

Iska, спасибо за ответ. только я опять что то делаю не так. не сработало

Iska 20-09-2019 15:37 2888805

v79italya, командлеты ConvertFrom-Json/ConvertTo-Json впервые появились в версии PowerShell 3.0. Если у Вас Windows 7 и выше — Вы можете попробовать обновиться до последних версий PowerShell. Я лично под Windows 7 x64 пока пользую 5.1.

v79italya 20-09-2019 20:37 2888854

Iska, ну вы и удружили.. мало павер шелл стал английским, так после запуска кода гугл хром не запускался. после возвращения резервной копии все открытые вкладки пропали((самая большая беда). так и папка загрузки не изменилась.
еще полдня ушло на установку шокорепозитарии и шелл.
как поменять командой папку загрузок?

и по моему версия гугл хром изменилась. как то по другому выглядит

Iska 21-09-2019 01:55 2888896

Цитата:

Цитата v79italya
Iska, ну вы и удружили.. мало павер шелл стал английским »

v79italya, именно так.

Цитата:

Цитата v79italya
так после запуска кода гугл хром не запускался. »

Подтверждаю. Как я писал выше — я не проверял при выкладывании кода последующую работоспособность Google Chrome'а:
Цитата:

Цитата Iska
…(без каких-либо проверок): »

В данном случае меня подвело слабое знание командлетов.

Цитата:

Цитата v79italya
после возвращения резервной копии все открытые вкладки пропали((самая большая беда). »

Не подтверждаю. Ранее открытые вкладки хранятся не в файле Preferences. У меня после восстановления ранее сохранённого файла Preferences все вкладки как были, так и остались на месте.

Цитата:

Цитата v79italya
так и папка загрузки не изменилась. »

Попробуйте так:
Скрытый текст
Код:

$aPreferences = Get-Content -Path "$($env:LocalAppData)\Google\Chrome\User Data\Default\Preferences" | ConvertFrom-Json

if(-not $aPreferences.download.default_directory) {
    $aPreferences.download | Add-Member -NotePropertyName 'default_directory' -NotePropertyValue 'C:\Downloads'
} else {
    $aPreferences.download.default_directory = 'C:\Downloads'
}

$aPreferences | ConvertTo-Json -Compress -Depth 10 | Set-Content -Path "$($env:LocalAppData)\Google\Chrome\User Data\Default\Preferences"


См. ниже дополнение.

Цитата:

Цитата v79italya
еще полдня ушло на установку шокорепозитарии и шелл. »

К сожалению, мне это мало о чём говорит.

Цитата:

Цитата v79italya
и по моему версия гугл хром изменилась. как то по другому выглядит »

У Google Chrome свои представления о времени и уместности обновления.


Дополнением: как я сейчас понимаю, Вам надо менять не тот параметр, что я думал ранее, не умолчальный каталог для загрузок, а ранее выбранный пользователем, то бишь — так (до кучи — зададим оба параметра):
Скрытый текст
Код:

$sFolder      = 'C:\Downloads'
$aPreferences = Get-Content -Path "$($env:LocalAppData)\Google\Chrome\User Data\Default\Preferences" | ConvertFrom-Json

if(-not $aPreferences.download.default_directory) {
    $aPreferences.download | Add-Member -NotePropertyName 'default_directory' -NotePropertyValue $sFolder
} else {
    $aPreferences.download.default_directory = $sFolder
}

if(-not $aPreferences.savefile.default_directory) {
    $aPreferences.savefile | Add-Member -NotePropertyName 'default_directory' -NotePropertyValue $sFolder
} else {
    $aPreferences.savefile.default_directory = $sFolder
}

$aPreferences | ConvertTo-Json -Compress -Depth 10 | Set-Content -Path "$($env:LocalAppData)\Google\Chrome\User Data\Default\Preferences"


v79italya 23-09-2019 11:56 2889205

Iska, спасибо. теперь все работает. только с закрытым браузером.
резервную копию все время делать? или, раз работает, то можно и не делать?

Iska 23-09-2019 12:17 2889208

Цитата:

Цитата v79italya
только с закрытым браузером. »

Работает и с открытым. Но Вы же понимаете, что при своём закрытии Google Chrome перезапишет сделанные скриптом изменения на свои текущие?

Цитата:

Цитата v79italya
резервную копию все время делать? или, раз работает, то можно и не делать? »

А Вам всё время надо делать замену? Так-то резервную копию невредно делать всегда.

v79italya 23-09-2019 13:36 2889217

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

Iska 23-09-2019 16:31 2889258

v79italya, ну, давайте сделаем так:
Скрытый текст
Код:

$sSourceFile  = "$($env:LocalAppData)\Google\Chrome\User Data\Default\Preferences"
$sFolder      = 'C:\Downloads'
$aPreferences = Get-Content -Path $sSourceFile | ConvertFrom-Json

if(-not $aPreferences.download.default_directory) {
    $aPreferences.download | Add-Member -NotePropertyName 'default_directory' -NotePropertyValue $sFolder
} else {
    $aPreferences.download.default_directory = $sFolder
}

if(-not $aPreferences.savefile.default_directory) {
    $aPreferences.savefile | Add-Member -NotePropertyName 'default_directory' -NotePropertyValue $sFolder
} else {
    $aPreferences.savefile.default_directory = $sFolder
}

[System.IO.File]::Copy($sSourceFile, "$($sSourceFile)_$((Get-Date).ToString('yyyyMMdd-HHmmss'))")

$aPreferences | ConvertTo-Json -Compress -Depth 10 | Set-Content -Path $sSourceFile


v79italya 23-09-2019 18:30 2889276

Iska, спасибо за вариант. только я больше ничего менять не буду.
я из файла excel макросом запущу этот скрипт. после смены папки для загрузок запускаю еще макрос, который будет работать (скачивать множество файлов) часа два. после макросом опять запущу этот скрипт, но с первоначальным адресом (который был до всего этого мероприятия) папки. и все

Iska 23-09-2019 19:38 2889290

Цитата:

Цитата v79italya
только я больше ничего менять не буду. »

Отчего?

Цитата:

Цитата v79italya
после смены папки для загрузок запускаю еще макрос, который будет работать (скачивать множество файлов) »

Э… Загрузки на VBA? А зачем тогда здесь Google Chrome?

v79italya 24-09-2019 21:11 2889450

Цитата:

Цитата Iska
Загрузки на VBA? А зачем тогда здесь Google Chrome? »

мне так удобнее. в Excel подготавливаю гиперссылки и макросом в цикле одну гиперссылку за другой скачиваю. через месяц скачиваю по новой. но перед этим, чтоб в папке были только нужные закачки, я вручную назначал папку для загрузок. потом нужно вернуть обратно(назначить папку загрузок первоначальную).
почему именно в Excel? если можно сделать формулами или в Power Query, то я справлюсь сам. если надо макросом, то приходится просить помощь других спецов. или попробовать найти готовый макрос и переделать под свою задачу. или записать макрорекордером и, опять же еле-как, переделать под свою задачу. а если дело касается батов или скриптов, то я в них вообще не разбираюсь и переделать ну никак не смогу. поэтому в Excel мне как то полегче.

Iska 24-09-2019 23:21 2889460

v79italya, как по мне — .csv и wget\cURL\PowerShell было бы удобнее.

Цитата:

Цитата v79italya
в Excel подготавливаю гиперссылки »

Как именно? Откуда они берутся?

Цитата:

Цитата v79italya
и макросом в цикле одну гиперссылку за другой скачиваю »

Код макроса?

Цитата:

Цитата v79italya
но перед этим, чтоб в папке были только нужные закачки, я вручную назначал папку для загрузок. потом нужно вернуть обратно(назначить папку загрузок первоначальную). »

И всё равно не могу уловить связь между макросом VBA и Google Chrome'ом.


Время: 07:37.

Время: 07:37.
© OSzone.net 2001-