Este seria um ótimo momento para usar o Regex. Há alguns problemas aqui, então vamos trabalhar com eles de cima para baixo. Primeiro, você precisa ser capaz de lidar com caminhos de rede. Faça isso adicionando o seguinte ao início do seu script para eliminar toda essa porcaria extra no caminho
$UNCPath = $pwd.ProviderPath
Isso fornecerá apenas a unidade \\ network \.
Agora, para lidar com as diferentes maneiras pelas quais você deseja enviar informações no parâmetro $ file, use expressões regulares para inspecionar o que você enviou.
$first = $file -match "\.\" #does file contain .\ ?
$second = $file -match "\" #does file contain \ ?
if($first -eq $true)
{ #for instances when you sent in .\filename.txt
$subFile = $file.Substring(2) #Eliminate the .\ from the path
$completeFile = "$UNCPath\$subFile"
.\notepad++.exe $completedFile
}
else if($second -eq $true) #Contains \ but not .\ so you've sent the complete path
{
.\notepad++.exe $file #easy when the full path is already sent
}
else
{ #You sent just the name of the document
$pathfile = $UNCPath + "\" + $file #we assume if you just sent the name, the file is
.\notepad++.exe $pathfile #located at your current location
}
cd $currentPath
}