#batch-file
Вопрос:
Учитывая описание Раймонда Чена и общепринятую точку зрения, мне любопытно узнать о некоторых наблюдениях:
Во-первых, если я быстр и запускаюсь set
в пакетном окне при запуске (обновленная Windows 10 Home), то я получаю список переменных среды, которые я ожидаю установить.
Но оставьте это на некоторое время, и некоторые другие переменные будут созданы в дальнейших cmd
экземплярах FPS_BROWSER_APP_PROFILE_STRING
и FPS_BROWSER_USER_PROFILE_STRING
, по — видимому, созданы браузером Edge.
У меня есть пакет инициализации, выполняемый по ссылке из каталога запуска. Этот пакет создает резервные копии некоторых важных каталогов и выполняет некоторые другие задачи. Одна из таких задач-удалить значки, которые DROPBOX раздражающе накладывает поверх значков zapiconoverlays
:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
:: Get rid of dropbox-generated icon overlays
:: Provide a parameter to NOT restart explorer
SET "spaces= "
(
ECHO Windows Registry Editor Version 5.00
ECHO/
FOR /L %%I IN (0,1,10) DO (
FOR /L %%L IN (101,1,110) DO (
SET /a iter=%%L
FOR %%K IN (WOW6432NodeMicrosoftWindowsCurrentVersionExplorerShellIconOverlayIdentifiers
MicrosoftWindowsCurrentVersionExplorerShellIconOverlayIdentifiers
) DO (
ECHO [-HKEY_LOCAL_MACHINESOFTWARE%%K!spaces:~0,%%I!DropboxExt!iter:~-2!]
)
)
)
)>u:zapiconoverlays.REG
regedit /s u:zapiconoverlays.REG
del u:zapiconoverlays.REG
SET "spaces=%~1"
SET "iter="
IF NOT DEFINED spaces CALL restartexplorer
GOTO :eof
Который я обычно запускаю без параметра, поэтому restartexplorer
выполняется:
@ECHO OFF
taskkill /f /im explorer.exe
DEL %userprofile%AppDataLocalIconCache.db /a 2>nul
START explorer.exe
Любопытно, что переменные, которые были установлены в локальной среде при restartexplorer
выполнении, затем передаются в другие cmd
экземпляры. Например, я обрабатываю текущую дату/время в различные переменные среды. Если я запущу zapiconoverlays
первым делом в пакете инициализации (после a setlocal
), то все будет работать так, как я ожидаю, но если я вызову zapiconoverlays
вызов после установки переменных даты и времени, то переменные даты и времени будут доступны в дальнейших cmd
экземплярах.
Я ищу подтверждение своим наблюдениям и, возможно, правило, которое можно применить.
Комментарии:
1.devblogs.microsoft.com/oldnewthing/20150915-00/?p=91591?
2. Когда программа запускается, она наследует текущую среду запуска программ.