@@ -7,7 +7,7 @@ namespace PSEverything
77 [ Cmdlet ( VerbsCommon . Search , "Everything" , SupportsPaging = true , DefaultParameterSetName = "default" ) ]
88 [ OutputType ( typeof ( string ) ) ]
99 [ OutputType ( typeof ( string [ ] ) ) ]
10- [ Alias ( "se" ) ]
10+ [ Alias ( "se" ) ]
1111 public class SearchEverythingCommand : PSCmdlet
1212 {
1313 [ Parameter ( ParameterSetName = "default" ) ]
@@ -52,8 +52,8 @@ public class SearchEverythingCommand : PSCmdlet
5252 [ ValidateCount ( 1 , 2 ) ]
5353 [ Parameter ( ParameterSetName = "default" ) ]
5454 public string [ ] Size { get ; set ; }
55-
56- [ Parameter ( ParameterSetName = "regex" ) ]
55+
56+ [ Parameter ( ParameterSetName = "regex" ) ]
5757 public string RegularExpression { get ; set ; }
5858
5959 [ Parameter ]
@@ -64,11 +64,11 @@ public class SearchEverythingCommand : PSCmdlet
6464
6565 [ Parameter ( ParameterSetName = "default" ) ]
6666 public SwitchParameter MatchWholeWord { get ; set ; }
67-
67+
6868 [ Parameter ( ) ]
6969 public SwitchParameter AsArray { get ; set ; }
7070
71- private string GetSearchString ( )
71+ private string GetSearchString ( )
7272 {
7373 if ( ParameterSetName == "regex" ) { return RegularExpression ; }
7474
@@ -87,13 +87,28 @@ private string GetSearchString()
8787
8888 private void AddPatternFilter ( StringBuilder searchBuilder )
8989 {
90- if ( ! String . IsNullOrEmpty ( Filter ) )
90+ if ( ! string . IsNullOrEmpty ( Filter ) )
9191 {
9292 searchBuilder . Append ( ' ' ) ;
9393 searchBuilder . Append ( Filter ) ;
9494 }
9595 }
9696
97+ private static void AddPath ( StringBuilder searchBuilder , string path )
98+ {
99+ if ( path . IndexOf ( ' ' ) == - 1 )
100+ {
101+ searchBuilder . Append ( path ) ;
102+ }
103+ else
104+ {
105+ searchBuilder . Append ( '"' ) ;
106+ searchBuilder . Append ( path ) ;
107+ searchBuilder . Append ( '"' ) ;
108+ }
109+ }
110+
111+
97112 private static void AddListFilter ( StringBuilder searchBuilder , string filterName , string [ ] include , string [ ] exclude = null , char separator = ' ' )
98113 {
99114 if ( include == null && exclude == null ) return ;
@@ -103,7 +118,7 @@ private static void AddListFilter(StringBuilder searchBuilder, string filterName
103118 foreach ( var item in include )
104119 {
105120 searchBuilder . Append ( filterName ) ;
106- searchBuilder . Append ( item ) ;
121+ AddPath ( searchBuilder , item ) ;
107122 searchBuilder . Append ( separator ) ;
108123 }
109124
@@ -114,7 +129,7 @@ private static void AddListFilter(StringBuilder searchBuilder, string filterName
114129 {
115130 searchBuilder . Append ( filterName ) ;
116131 searchBuilder . Append ( '!' ) ;
117- searchBuilder . Append ( item ) ;
132+ AddPath ( searchBuilder , item ) ;
118133 searchBuilder . Append ( separator ) ;
119134 }
120135 }
@@ -127,10 +142,12 @@ private void AddPathFilter(StringBuilder searchBuilder)
127142 if ( ! Global )
128143 {
129144 searchBuilder . Append ( " path:" ) ;
130- searchBuilder . Append ( SessionState . Path . CurrentFileSystemLocation . ProviderPath ) ;
145+ AddPath ( searchBuilder , SessionState . Path . CurrentFileSystemLocation . ProviderPath ) ;
146+ if ( ! SessionState . Path . CurrentFileSystemLocation . ProviderPath . EndsWith ( "\\ " ) ) {
131147 searchBuilder . Append ( '\\ ' ) ;
132148 }
133149 }
150+ }
134151
135152 void AddFileFilter ( StringBuilder searchBuilder )
136153 {
@@ -166,7 +183,7 @@ void AddParentCountFilter(StringBuilder searchBuilder)
166183
167184 void AddChildFilter ( StringBuilder searchBuilder )
168185 {
169- if ( ! String . IsNullOrEmpty ( ChildFileName ) )
186+ if ( ! string . IsNullOrEmpty ( ChildFileName ) )
170187 {
171188 searchBuilder . Append ( " child:" ) ;
172189 searchBuilder . Append ( ChildFileName ) ;
@@ -219,7 +236,7 @@ protected override void ProcessRecord()
219236 Everything . SortResultsByPath ( ) ;
220237
221238 ulong skip = PagingParameters . Skip ;
222- if ( skip > Int32 . MaxValue )
239+ if ( skip > int . MaxValue )
223240 {
224241 ThrowTerminatingError ( new ErrorRecord ( new ParameterBindingException ( "Cannot skip that many results" ) , "SkipToLarge" , ErrorCategory . InvalidArgument , skip ) ) ;
225242 }
@@ -228,9 +245,9 @@ protected override void ProcessRecord()
228245
229246 if ( first == ulong . MaxValue )
230247 {
231- first = Int32 . MaxValue ;
248+ first = int . MaxValue ;
232249 }
233- if ( first > Int32 . MaxValue )
250+ if ( first > int . MaxValue )
234251 {
235252 ThrowTerminatingError ( new ErrorRecord ( new ParameterBindingException ( "Cannot take that many results" ) , "FirstToLarge" , ErrorCategory . InvalidArgument , first ) ) ;
236253 }
@@ -241,7 +258,7 @@ protected override void ProcessRecord()
241258 if ( skip > 0 )
242259 {
243260 Everything . SetOffset ( ( int ) skip ) ;
244- }
261+ }
245262
246263
247264 var searchPattern = GetSearchString ( ) ;
0 commit comments