下面的脚本就像在本地驱动器上的梦一样:
$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 |
答案 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'