So I am writing a script, where I want to read in files from 2
directories. And I want to access them as if they were 2 separate
drive letters (to emulate the configuration on another machine, where
I will eventually run this script). So, if I use a SUBST command, all
works correctly:
Z:\>subst I: D:\Testing\SyncCheckDirs\Web01
Script:
---------------
$Web01_Dir = "I:\PHAWebsiteR2\media"
$Web01_Drv_Letter = "I"
$Web01_Files = Get-ChildItem -Path $Web01_Dir -recurse | Sort
ForEach ($LeftFile in $Web01_Files)
{
$ThisFile = $LeftFile.FullName
Write-Host "FullName = " $LeftFile.FullName
}
---------------
And I get this:
PS Z:\PHA Scripts> .\Test-PSDrive.PS1
FullName = I:\WebsiteR2\media\10022
FullName = I:\WebsiteR2\media\10037
IOW , I see the SUBST drive letter, and not the actual path of
"D:\Testing\SyncCheckDirs\Web01". Great! Exactly as I expect, and
want.
BUT:
If I don't do a SUBST at the command line first, and instead include a
line to use New-PSDrive:
---------------
$Web01_Dir = "I:\PHAWebsiteR2\media"
$Web01_Drv_Letter = "I"
New-PSDrive -name $Web01_Drv_Letter -PSProvider FileSystem -root
D:\Testing\SyncCheckDirs\Web01
$Web01_Files = Get-ChildItem -Path $Web01_Dir -recurse | Sort
ForEach ($LeftFile in $Web01_Files)
{
$ThisFile = $LeftFile.FullName
Write-Host "FullName = " $LeftFile.FullName
}
---------------
I get this:
FullName = D:\Testing\SyncCheckDirs\Web01\WebsiteR2\media\10022
FullName = D:\Testing\SyncCheckDirs\Web01\WebsiteR2\media\10037
IOW,the result isn't using the "mapped" drive letter of I:, as it does
if I do a SUBST from the command line. And I don't know why. Shouldn't
the result of using the New-PSDrive command cause a Get-ChildItem to
return results using the PSDrive letter? It seems to be ignoring that,
and giving me the actual, i.e., non-aliased, path. I want the result
to include the PSDrive letter; how can I do that?
(this will influence the rest of the script, as I process the file)
I've read that New-PSDrive gives similar results to the SUBST command,
but this seems not to be the case for me. What concept am I missing,
or doing wrong here?
Thanks
================================================
Did you know you can also post and find answers on PowerShell in the forums?
http://www.myitforum.com/forums/default.asp?catApp=1