краткий справочник констант специальных папок windows. must have повершельщика.

Специальные папки

Когда я программировал на VBScript я использовал «специальные папки», это папки типа «мои документы» и тому подобное, я использовал доступ через объект Shell.Application передавая в него константу нужной папки.

тот же самый путь работает в PowerShell
$a = New-Object -ComObject Shell.Application
Get-ChildItem $a.NameSpace(0x21).Self.Path

можно сократить до одной строки если вам так нравится больше:
Get-ChildItem ( (New-Object -ComObject Shell.Application).Namespace(0x21).Self.Path)


И если вам хочется наглядности то:
$cookies = 0x21
Get-ChildItem ( (New-Object -ComObject Shell.Application).Namespace($cookies).Self.Path)


Это список специальных папок которые я сделал когдато для себя.
$ie = 0x1            # Internet Explorer
$progs = 0x2         # Programs
$cp = 0x3            # Control Panel
$printers = 0x4      # Printers and Faxes
$mydocs = 0x5        # My Documents
$favs = 0x6          # Favorites
$startup = 0x7       # Startup
$myrecdocs = 0x8     # My Recent Documents
$sendto = 0x9        # SendTo
$recycle = 0xa       # Recycle Bin
$start = 0xb         # Start Menu
$music = 0xd         # My Music
$videos = 0xe        # My Videos
$desktop = 0x10      # Desktop
$mycomp = 0x11       # My Computer
$mynet = 0x12        # My Network Places
$nethood = 0x13      # NetHood
$fonts = 0x14        # Fonts
$templates = 0x15    # Templates
$allsm = 0x16        # All Users Start Menu
$allprogs = 0x17     # All Users Programs
$allstart = 0x18     # All Users Startup
$alldesk = 0x19      # All Users Desktop
$appdata = 0x1a      # Application Data
$printhood = 0x1b    # PrintHood
$lsapps = 0x1c       # Local SettingsApplication Data
$lstempie = 0x20     # Local Settings Temporary Internet Files
$cookies = 0x21      # Cookies
$lshist = 0x22       # Local SettingsHistory
$allappdata = 0x23   # All Users Application Data
$windows = 0x24      # Windows
$system32 = 0x25     # System32
$progfiles = 0x26    # Program Files
$mypics = 0x27       # My Pictures
$profile = 0x28      # User Profile
$common = 0x2b       # Common Files
$alltemplates = 0x2e # All Users Templates
$admintools = 0x2f   # Administrative Tools
$netconn = 0x31      # Network Connections


оригинал статьи здесь:
richardspowershellblog.wordpress.com/2008/03/20/special-folders

Комментарии (5)


  1. Veliant
    03.03.2016 15:35
    +2

    А ноги, думаю, растут из констант для некоторых WINAPI

    Заголовок спойлера
    #define CSIDL_DESKTOP   0
    #define CSIDL_INTERNET  1
    #define CSIDL_PROGRAMS  2
    #define CSIDL_CONTROLS  3
    #define CSIDL_PRINTERS  4
    #define CSIDL_PERSONAL  5
    #define CSIDL_FAVORITES 6
    #define CSIDL_STARTUP   7
    #define CSIDL_RECENT    8
    #define CSIDL_SENDTO    9
    #define CSIDL_BITBUCKET 10
    #define CSIDL_STARTMENU 11
    #define CSIDL_DESKTOPDIRECTORY  16
    #define CSIDL_DRIVES    17
    #define CSIDL_NETWORK   18
    #define CSIDL_NETHOOD   19
    #define CSIDL_FONTS 20
    #define CSIDL_TEMPLATES 21
    #define CSIDL_COMMON_STARTMENU  22
    #define CSIDL_COMMON_PROGRAMS   23
    #define CSIDL_COMMON_STARTUP    24
    #define CSIDL_COMMON_DESKTOPDIRECTORY   25
    #define CSIDL_APPDATA   26
    #define CSIDL_PRINTHOOD 27
    #define CSIDL_LOCAL_APPDATA 28
    #define CSIDL_ALTSTARTUP    29
    #define CSIDL_COMMON_ALTSTARTUP 30
    #define CSIDL_COMMON_FAVORITES  31
    #define CSIDL_INTERNET_CACHE   32
    #define CSIDL_COOKIES   33
    #define CSIDL_HISTORY   34
    #define CSIDL_COMMON_APPDATA    35
    #define CSIDL_WINDOWS   36
    #define CSIDL_SYSTEM    37
    #define CSIDL_PROGRAM_FILES 38
    #define CSIDL_MYPICTURES    39
    #define CSIDL_PROFILE   40
    #define CSIDL_SYSTEMX86 41
    #define CSIDL_PROGRAM_FILESX86  42
    #define CSIDL_PROGRAM_FILES_COMMON  43
    #define CSIDL_PROGRAM_FILES_COMMONX86   44
    #define CSIDL_COMMON_TEMPLATES  45
    #define CSIDL_COMMON_DOCUMENTS  46
    #define CSIDL_COMMON_ADMINTOOLS 47
    #define CSIDL_ADMINTOOLS    48
    #define CSIDL_CONNECTIONS   49
    #define CSIDL_COMMON_MUSIC  53
    #define CSIDL_COMMON_PICTURES   54
    #define CSIDL_COMMON_VIDEO  55
    #define CSIDL_RESOURCES 56
    #define CSIDL_RESOURCES_LOCALIZED   57
    #define CSIDL_COMMON_OEM_LINKS  58
    #define CSIDL_CDBURN_AREA   59
    #define CSIDL_COMPUTERSNEARME   61


    1. pak-nikolai
      03.03.2016 16:00
      +1

      и правда совпадает


  1. DikSoft
    03.03.2016 20:27

    Спасибо! Для полного счастья подскажите, пожалуйста:

    $allsm = 0x16 # All Users Start Menu
    и
    $start = 0xb # Start Menu


    $allstart = 0x18 # All Users Startup
    и
    $startup = 0x7 # Startup

    … кто из них Автозагрузка?


    1. pak-nikolai
      03.03.2016 21:03
      +1

      пожалуйста

      $allsm = 0x16 # All Users Start Menu
      Directory: C:\ProgramData\Microsoft\Windows\Start Menu
      
      $start = 0xb # Start Menu
      Directory: C:\Users\UserName\AppData\Roaming\Microsoft\Windows\Start Menu
      
      $allstart = 0x18 # All Users Startup
      Directory: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
      
      $startup = 0x7 # Startup
       Directory: C:\Users\UserName\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup


  1. darkdaskin
    04.03.2016 12:58

    Через .NET более наглядно:

    [Environment]::GetFolderPath([System.Environment+SpecialFolder]::UserProfile)