Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

The CMD %~ modifiers are specific to the Windows Command Prompt and cannot be directly utilized in a Powershell script. However, similar functionality can be achieved using Powershell string manipulation methods.

For example, the CMD %~dp0 modifier retrieves the drive and path of the batch file currently executing. In Powershell, this can be achieved using the $PSScriptRoot automatic variable:

$scriptPath = Join-Path $PSScriptRoot "subfolder\file.txt"

Similarly, the CMD %~nx modifier retrieves the file name and extension of a given file. In Powershell, the same can be achieved using the Get-Item cmdlet and the BaseName and Extension properties:

$file = Get-Item "C:\path\to\file.txt"
$fileName = $file.BaseName
$fileExt = $file.Extension