Показать полную графическую версию : [решено] в Google Chrome сменить папку для загрузок
v79italya
19-09-2019, 19:19
Добрый день. Есть ли возможность кодом сменить в гугле хром папку для загрузок?
например, сейчас все загрузки сохраняются в папке по адресу C:\abc\ . надо сменить, например, на D:\bca\ .
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
Iska, спасибо за ответ. только я опять что то делаю не так. не сработало
v79italya, командлеты ConvertFrom-Json (https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/convertfrom-json?view=powershell-6)/ConvertTo-Json (https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/convertto-json?view=powershell-6) впервые появились в версии PowerShell 3.0. Если у Вас Windows 7 и выше — Вы можете попробовать обновиться до последних версий PowerShell. Я лично под Windows 7 x64 пока пользую 5.1.
v79italya
20-09-2019, 20:37
Iska, ну вы и удружили.. мало павер шелл стал английским, так после запуска кода гугл хром не запускался. после возвращения резервной копии все открытые вкладки пропали((самая большая беда). так и папка загрузки не изменилась.
еще полдня ушло на установку шокорепозитарии и шелл.
как поменять командой папку загрузок?
и по моему версия гугл хром изменилась. как то по другому выглядит
Iska, ну вы и удружили.. мало павер шелл стал английским »
v79italya, именно так.
так после запуска кода гугл хром не запускался. »
Подтверждаю. Как я писал выше — я не проверял при выкладывании кода последующую работоспособность Google Chrome'а:
…(без каких-либо проверок): »
В данном случае меня подвело слабое знание командлетов.
после возвращения резервной копии все открытые вкладки пропали((самая большая беда). »
Не подтверждаю. Ранее открытые вкладки хранятся не в файле Preferences. У меня после восстановления ранее сохранённого файла Preferences все вкладки как были, так и остались на месте.
так и папка загрузки не изменилась. »
Попробуйте так:
$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"
См. ниже дополнение.
еще полдня ушло на установку шокорепозитарии и шелл. »
К сожалению, мне это мало о чём говорит.
и по моему версия гугл хром изменилась. как то по другому выглядит »
У 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
Iska, спасибо. теперь все работает. только с закрытым браузером.
резервную копию все время делать? или, раз работает, то можно и не делать?
только с закрытым браузером. »
Работает и с открытым. Но Вы же понимаете, что при своём закрытии Google Chrome перезапишет сделанные скриптом изменения на свои текущие?
резервную копию все время делать? или, раз работает, то можно и не делать? »
А Вам всё время надо делать замену? Так-то резервную копию невредно делать всегда.
v79italya
23-09-2019, 13:36
понимаю.
замену надо делать раз в месяц в течение дня туда и обратно. просто по времени копипасте резерва занимает времени не меньше чем вручную поменять папку для загрузок)
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
Iska, спасибо за вариант. только я больше ничего менять не буду.
я из файла excel макросом запущу этот скрипт. после смены папки для загрузок запускаю еще макрос, который будет работать (скачивать множество файлов) часа два. после макросом опять запущу этот скрипт, но с первоначальным адресом (который был до всего этого мероприятия) папки. и все
только я больше ничего менять не буду. »
Отчего?
после смены папки для загрузок запускаю еще макрос, который будет работать (скачивать множество файлов) »
Э… Загрузки на VBA? А зачем тогда здесь Google Chrome?
v79italya
24-09-2019, 21:11
Загрузки на VBA? А зачем тогда здесь Google Chrome? »
мне так удобнее. в Excel подготавливаю гиперссылки и макросом в цикле одну гиперссылку за другой скачиваю. через месяц скачиваю по новой. но перед этим, чтоб в папке были только нужные закачки, я вручную назначал папку для загрузок. потом нужно вернуть обратно(назначить папку загрузок первоначальную).
почему именно в Excel? если можно сделать формулами или в Power Query, то я справлюсь сам. если надо макросом, то приходится просить помощь других спецов. или попробовать найти готовый макрос и переделать под свою задачу. или записать макрорекордером и, опять же еле-как, переделать под свою задачу. а если дело касается батов или скриптов, то я в них вообще не разбираюсь и переделать ну никак не смогу. поэтому в Excel мне как то полегче.
v79italya, как по мне — .csv и wget\cURL\PowerShell было бы удобнее.
в Excel подготавливаю гиперссылки »
Как именно? Откуда они берутся?
и макросом в цикле одну гиперссылку за другой скачиваю »
Код макроса?
но перед этим, чтоб в папке были только нужные закачки, я вручную назначал папку для загрузок. потом нужно вернуть обратно(назначить папку загрузок первоначальную). »
И всё равно не могу уловить связь между макросом VBA и Google Chrome'ом.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.