'获取内容'从共享文件夹中的文件失败?

时间:2018-02-12 17:13:40

标签: powershell

下面的脚本就像在本地驱动器上的梦一样:

 $File = 'c:\scripts\File.reg'
 $Content = Get-Content -Path $File | 
 ForEach-Object {
    $_ -replace 'user',$ENV:USERNAME
 } 
 Set-Content -Path $File -Value $Content

如何让此脚本适用于共享驱动器上的文件?

显然这不起作用:

 $File = '\\server\sharedfolder\file.reg'
 $Content = Get-Content -Path $File | 
 ForEach-Object {
    $_ -replace 'user',$ENV:USERNAME
} 
 Set-Content -Path $File -Value $Content

我正好点击ps1文件并使用powershell运行,我收到此错误:

  

" Get-Content:无法将参数绑定到参数'路径'因为它是   空值。在C:\ users \ bob \ desktop \ script.ps1:2 char:30   + $ Content = Get-Content -Path $ file |

2 个答案:

答案 0 :(得分:0)

您的档案中有什么......

代码应该按原样运行。如果不是别的什么不对。

示例:

PS C:\Scripts> ($file = '\\fs01\Data\New Text Document.txt')

\\fs01\Data\New Text Document.txt

PS C:\Scripts> Get-Content -Path $File

New text doc 

user
user1
2user

PS C:\Scripts> $Content = $null

PS C:\Scripts> $Content

PS C:\Scripts> $Content = Get-Content -Path $File | 
ForEach-Object {
$_ -replace 'user',$ENV:USERNAME
}

PS C:\Scripts> $Content 
New text doc 

Administrator
Administrator1
2Administrator

PS C:\Scripts> $File

\\fs01\Data\New Text Document.txt

PS C:\Scripts> Set-Content -Path $File -Value $Content

PS C:\Scripts> Get-Content -Path $File

New text doc 

Administrator
Administrator1
2Administrator

答案 1 :(得分:0)

由于您正在处理扩展名为reg的文件,因此我怀疑您是从Registry提供商处运行代码的。在这种情况下,您必须在UNC路径中指定Filesystem提供程序:(注意双冒号)

$File = 'Filesystem::\\server\sharedfolder\file.reg'