我正在使用:
mydata <- "x"
vars <- c("col1", "col2")
get(mydata)[[vars[2]]]
这非常好,因为它使用本机Windows对话框复制文件以获取进度。但是,如果文件存在,则会提示您进行确认。
如何使其覆盖所有文件?
读到这篇文章,似乎所有人的旗帜都是“ 16”吗?
不确定如何集成它,我正在尝试:
$source = "C:\path1"
$destination = "C:\path2"
$FOF_CREATEPROGRESSDLG = "&H0&"
$objShell = New-Object -ComObject "Shell.Application"
$objFolder = $objShell.NameSpace($destination)
$objFolder.CopyHere($source, $FOF_CREATEPROGRESSDLG)
但是它不起作用。 https://docs.microsoft.com/en-us/windows/desktop/shell/folder-copyhere
答案 0 :(得分:1)
行情导致PowerShell自动将其内容键入为字符串。只需在该对话框中使用数字,它便可以正常工作。
这是因为shell.application.CopyHere()方法使用位掩码来确定选项。从编程上来说,比较二进制寄存器之间的效率更高。
Try $objFolder.CopyHere( $source, 16 )
答案 1 :(得分:0)
最后用我发现的一些代码进行了重写,这是最终的工作版本,显示进度条,但是如果文件已经存在,则没有提示停止复制:
$source = "C:\path1"
$destination = "C:\path2"
$SourceNameSpace = (new-object -com shell.application).NameSpace($source)
$destinationFolder = (new-object -com shell.application).NameSpace($destination)
$destinationFolder.CopyHere($source,16)