GenXdev.FileSystem
A Windows PowerShell module for basic and advanced file management tasks
Install / Use
/learn @genXdev/GenXdev.FileSystemREADME
NAME
GenXdev.FileSystem
SYNOPSIS
A Windows PowerShell module for basic and advanced file management tasks
APACHE 2.0 License
Copyright (c) 2025 René Vaessen / GenXdev
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
FEATURES
* Simple but agile utility for renaming text throughout a project directory,
including file- and directory- names: Rename-InProject -> rip
* Pretty good wrapper for robocopy, Microsoft's robuust file copy utility: Start-RoboCopy -> rc, xc
* Folder synchronization
* Support for extra long pathnames > 256 characters
* Restartable mode backups
* Support for copying and fixing security settings
* Advanced file attribute features
* Advanced symbolic link and junction support
* Monitor mode (restart copying after change threshold)
* Optimization features for LargeFiles, multithreaded copying and
network compression
* Recovery mode (copy from failing disks)
* Find files with Find-Item -> l
* Fast multi-threaded search: utilizes parallel and asynchronous
IO processing with configurable maximum degree of parallelism
(default based on CPU cores) for efficient file and directory scanning.
* Advanced Pattern Matching: Supports wildcards (*, ?), recursive patterns
like **, and complex path structures for precise file and directory queries.
**/filename will only recurse until filename is matched. multiple of these
patterns are allowed, as long as the are preceeded with a filename or
directoryname to match.
This pattern parser has the power of Resolve-Path but has recursion
features, and does only support * and ? as wildcards,
preventing bugs with paths with [ ] brackets in them, eliminating
the need for -LiteralPath parameter, while maintaining integrity
for paths sections without wildcards, unlike a wildcard match on the
whole full path.
* Enhanced Content Searching: Comprehensive Select-String integration
with regular expression patterns within file contents using the
-Content parameter.
* Large File Optimization: Handles extremely large files with smart
overlapping buffers and minimal heap allocation
* Multiple Match Options: Find all matches per line (-AllMatches) or
just the first match per file (-List)
* Case Sensitivity Control: Case-sensitive matching (-CaseSensitive)
with culture-specific options (-Culture)
* Context Capture: Show lines before and after matches (-Context) for
better understanding
* Inverse Matching: Find files that don't contain the pattern (-NotMatch)
* Output Formats: Raw string output (-Raw), quiet boolean response (-Quiet),
or full MatchInfo objects
* Pattern Types: Regular expressions (default) or simple literal string
matching (-SimpleMatch)
* Encoding Support: Specify file encoding (-Encoding) for accurate text
processing
* Path Type Flexibility: Handles relative, absolute, UNC, rooted paths, and
NTFS alternate data streams (ADS) with optional content search in streams.
* Multi-Drive Support: Searches across all drives with -AllDrives or specific
drives via -SearchDrives, including optical disks if specified.
* Directory and File Filtering: Options to search directories only (-Directory),
both files and directories (-FilesAndDirectories), or files with content matching.
* Exclusion and Limits: Exclude patterns with -Exclude, set max recursion depth
-MaxRecursionDepth), file size limits (-MaxFileSize, -MinFileSize), and modified
date filters (-ModifiedAfter, -ModifiedBefore).
* Output Customization: Supports PassThru for FileInfo/DirectoryInfo objects,
relative paths, hyperlinks in attended mode, or plain paths in unattended mode
(use -NoLinks in case of mishaps to enforce unattended mode).
* Performance Optimizations: Skips non-text files by default for content search
(override with -IncludeNonTextFileMatching), handles long paths (>260 chars),
and follows symlinks/junctions.
* Safety Features: Timeout support (-TimeoutSeconds), ignores inaccessible items,
skips system attributes by default, and prevents infinite loops with visited node tracking.
* Easily change directories with Set-FoundLocation -> lcd
* Find directories by name/wildcard
* Supports most of Find-Items parameters, like searching in file contents to match
the directory to change location too
* Has autocompletion, just type the first letters and press Tab or CTRL-SPACE
* Delete complete directory contents with Remove-AllItems -> sdel
* Optionally delete the root folder as well
* Move files and directories with Move-ItemWithTracking
INSTALLATION
Install-Module "GenXdev.FileSystem"
Import-Module "GenXdev.FileSystem"
UPDATE
Update-Module
<br/><hr/><br/>
Cmdlet Index
GenXdev.FileSystem
| Command | Aliases | Description | | :--- | :--- | :--- | | Confirm-InstallationConsent | | | | Copy-IdenticalParamValues | | Copies parameter values from bound parameters to a new hashtable based on another function's possible parameters. | | EnsurePester | | | | Expand-Path | ep | Expands any given file reference to a full pathname. | | Find-DuplicateFiles | fdf | Find duplicate files across multiple directories based on configurable criteria. | | Find-Item | l | Fast multi-threaded file and directory search with optional textcontent pattern matching capabilities. | | Invoke-Fasti | fasti | | | Move-ItemWithTracking | | Moves files and directories while preserving filesystem links and references. | | Move-ToRecycleBin | | Moves files and directories to the Windows Recycle Bin safely. | | ReadJsonWithRetry | | Reads JSON file with retry logic and automatic lock cleanup. | | Remove-AllItems | sdel | | | Remove-ItemWithFallback | rmf | | | Remove-OnReboot | | Marks files or directories for deletion during the next system boot. | | Rename-InProject | rip | | | ResolveInputObjectFileNames | | | | Set-FoundLocation | lcd | Finds the first matching file or folder and sets the location to it. | | Set-LocationParent | .. | Changes the current location to the parent directory and lists its contents. | | Set-LocationParent2 | ... | Navigates up two directory levels in the file system hierarchy. | | Set-LocationParent3 | .... | Navigates up three directory levels in the file system hierarchy. | | Set-LocationParent4 | ..... | Navigates up four directory levels in the filesystem hierarchy. | | Set-LocationParent5 | ...... | Navigates up five directory levels in the file system hierarchy. | | Start-RoboCopy | rc, xc | | | WriteFileOutput | | | | WriteJsonAtomic | | |
<br/><hr/><br/>
Cmdlets
<hr/>
GenXdev.FileSystem<hr/>
Confirm-InstallationConsent
Confirm-InstallationConsent
SYNTAX
Confirm-InstallationConsent [-ApplicationName] <string>
[-Source] <string> [-Description <string>] [-Publisher
<string>] [-ForceConsent]
[-ConsentToThirdPartySoftwareInstallation]
[<CommonParameters>]
PARAMETERS
-ApplicationName <string>
The name of the application or software being installed.
Required? true
Position? 0
Accept pipeline input? false
Parameter set name (All)
Aliases None
Dynamic? false
Accept wildcard characters? false
-ConsentToThirdPartySoftwareInstallation
Automatically consent to third-party software installation and set persistent flag.
