mas*_*asi 9 powershell powershell-3.0
我正在尝试将大约10个文件夹复制到远程文件共享上,每个文件夹包含一个〜3KB .txt文件,延迟时间为几秒.我正在使用Copy-Item
像这样的Powershells :
try
{
Copy-Item -Path $source -Destination $destination -Recurse -ErrorAction Stop
}
catch
{
Write-Error $_.Exception.ToString()
}
Run Code Online (Sandbox Code Playgroud)
运行脚本的用户对文件服务器共享和本地源具有读,写和执行权限.
首次运行时,目标文件夹为空.一切正常.第二次运行时,文件和文件夹已存在.因此,在运行上面的代码之前,我首先运行检查Test-Path
,如果文件夹存在使用Remove-Item
这样的删除:
try
{
if(Test-Path -Path $path -ErrorAction Stop)
{
Remove-Item -Recurse -Path $path -ErrorAction Stop
}
}
catch
{
Write-Error $_.Exception.ToString()
}
Run Code Online (Sandbox Code Playgroud)
没有其他人编辑这些文件.但是,当运行脚本时,偶尔会出现一些我不明白的原因,我在复制时突然收到某些文件夹的UnauthorizedAccessException错误.确切的错误是:
System.UnauthorizedAccessException:access denied ---> System.ComponentModel.Win32Exception:System.Management.Automation.SessionStateInternal.IsItemContainer(CmdletProvider providerInstance,String path,CmdletProviderContext)中的Microsoft.PowerShell.Commands.FileSystemProvider.NativeDirectoryExists(String path)中的访问被拒绝上下文
请注意:在远程文件服务器上的旧文件删除成功完成后,我收到了这些错误.
小智 -3
Masi,Powershell 复制项目功能在我看来并不是那么好。为什么不在这里使用 robocopy/Powershell 混合呢?
例子:
$source = "C:\temp"
$destination ="\\\RemoteServer\Temp"
robocopy $source $destination /s /mt:8
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7462 次 |
最近记录: |