Help with the basics.

Welcome Forums General PowerShell Q&A Help with the basics.

This topic contains 1 reply, has 2 voices, and was last updated by

 
Keymaster
4 years, 11 months ago.

  • Author
    Posts
  • #14641

    Participant
    Points: 0
    Rank: Member

    Hi There,

    I'm currently going through Don's great book 'Powershell in a month of lunches' and really digging into the basics to solidify my understanding of the fundamentals.

    So I was digging around testing the help menu examples for Get-ChildItem and was hoping for some clarification.

    ————————– EXAMPLE 7 ————————–
    C:\PS>get-childitem c:\windows\logs\* -include *.txt -exclude A*

    Description

    ———–

    This command gets the .txt files in the Logs subdirectory, except for those whose names start with the letter A. It uses the wildcard character (*) to indicate the contents of the Logs subdirectory, not the directory container. Because the command does not include the Recurse parameter, Get-ChildItem does not include the contents of the current directory automatically; you need to specify it.

    Now on my machine (windows 7, PS ver.3) the C:\Windows\Log\ directory contains a number of subdirectories and files, but using the wildcard or excluding it make no difference to the results I receive.

    get-childitem c:\windows\logs\* 
    get-childitem c:\windows\logs\ 

    Directory: C:\Windows\Logs

    Mode LastWriteTime Length Name
    —- ————- —— —-
    d—- 20/04/2014 12:12 AM CBS
    d—- 19/04/2014 7:48 PM DISM
    d—- 19/04/2014 6:56 PM DPX
    d—- 14/07/2009 1:32 PM HomeGroup
    d—- 20/04/2014 1:11 PM SystemRestore
    -a— 19/04/2014 7:52 PM 2831 IE9_NR_Setup.log

    Both returns the same results, namely the first level files and folders in the C:\Windows\Logs directory, i.e. all of it's childitems. So I looked at the help more closely

    -Path
    Specifies a path to one or more locations. Wildcards are permitted. The default location is the current directory (.).

    Required? false
    Position? 1
    Default value Current directory
    Accept pipeline input? true (ByValue, ByPropertyName)
    Accept wildcard characters? true

    So to me the use of a wildcard in the path string seems to be just a short hand way of filtering results and the explanation attached to 'example 7' is either outdated or just plain wrong.

    Am I missing something here?

  • #14647

    Keymaster
    Points: 1,811
    Helping HandTeam Member
    Rank: Community Hero

    The explanation in the help file might be confusing. It's example 3 online (http://technet.microsoft.com/en-us/library/hh849800.aspx).

    The -Path parameter specifies the child items you want to get. In this case, it's specifying a folder path, so you want the child items of that folder. Including a wildcard or not doesn't matter – you're not getting the item (the directory) either way. So in that regard, the explanation is, at the very least, confusing.

    You CAN use a wildcard as a shorthand means of filtering – although that isn't what this example is doing.

    However... this example deals with the filesystem. Get-ChildItem might behave slightly differently in a different provider.

    Consider bugging the doc at connect.microsoft.com so Microsoft can clarify it.

The topic ‘Help with the basics.’ is closed to new replies.

denizli escort samsun escort muğla escort ataşehir escort kuşadası escort