Powershell 机器人复制源
我正在使用robocopy编写powershell脚本,以从列表中复制“完整”unc/文件名路径。我遇到的问题是robocopy似乎在我的源路径末尾添加了一个Powershell 机器人复制源,powershell,robocopy,Powershell,Robocopy,我正在使用robocopy编写powershell脚本,以从列表中复制“完整”unc/文件名路径。我遇到的问题是robocopy似乎在我的源路径末尾添加了一个\ 我有一个C:\temp\list.txt,它列出了UNC路径和文件名,例如:\server\folder\test.txt 我的代码 $Paths = Get-Content -Path C:\Temp\List.txt ForEach ($p in $Paths) {robocopy $p "\\Server\path\pa
\
我有一个C:\temp\list.txt,它列出了UNC路径和文件名,例如:\server\folder\test.txt
我的代码
$Paths = Get-Content -Path C:\Temp\List.txt
ForEach ($p in $Paths) {robocopy $p "\\Server\path\path\"}
The error that powershell is throwing is :
-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows
-------------------------------------------------------------------------------
Started : Monday, March 1, 2021 1:36:52 PM
Source : \\Server\path\path\test.xls\
Dest : \\Server\path\path\
Files : *.*
Options : *.* /DCOPY:DA /COPY:DAT /R:1000000 /W:30
------------------------------------------------------------------------------
2021/03/01 13:36:52 ERROR 267 (0x0000010B) Accessing Source Directory
\\Server\path\path\test.xls\
The directory name is invalid.
有人知道如何阻止robocopy在我的“源”位置末尾添加\
谢谢你的帮助。我不确定“\”是你的问题。您使用的Robocopy命令格式不正确。指定源和目标后,应将文件指定为筛选器
RoboCopy <SourceFolderPath> <DestinationFolderPath> <File1> <File2> ...
从Robocopy.exe/?
:
Started : Monday, March 1, 2021 2:06:53 PM
Usage :: ROBOCOPY source destination [file [file]...] [options]
source :: Source Directory (drive:\path or \\server\share\path).
destination :: Destination Dir (drive:\path or \\server\share\path).
file :: File(s) to copy (names/wildcards: default is "*.*").
过滤器不必是精确的文件名,它们可以利用通配符(如*.xls
)来帮助选择文件。我认为在你的情况下,你会受到输入格式的限制
$Paths = Get-Content -Path C:\Temp\List.txt
ForEach ($p in $Paths)
{
$Path = Split-Path -Path $p -Parent
$File = Split-Path -Path $p -Leaf
robocopy $Path "\\Server\path\path\"
}
如果要复制子文件夹及其文件,有3个选项,再次引用帮助文件:
/S :: copy Subdirectories, but not empty ones.
/E :: copy subdirectories, including Empty ones.
/MIR :: MIRror a directory tree (equivalent to /E plus /PURGE).
警告:/MIR
可能很危险,因为它会很快删除目标中的内容
即使遍历子文件夹,过滤器也将应用。所以一定要调整或移除它。如果您想复制选定文件夹中的所有内容,只需删除过滤器,尽管从技术上讲星号也可以
我建议认真研究帮助文件。有不同的文件选择和复制选项值得了解。@Steven;太棒了…这么简单的东西…谢谢!!有没有办法把文件所在的目录和子目录带过来?我尝试使用“/E”和“/S”作为目标,但它无法生成文件并将其放入目录中。很高兴您取得了进展。如果你对答案感到满意,你可以接受它。关于你的最后一个问题;过滤器可能会扭曲结果。我在答案中添加了一些应该涵盖的信息。
/S :: copy Subdirectories, but not empty ones.
/E :: copy subdirectories, including Empty ones.
/MIR :: MIRror a directory tree (equivalent to /E plus /PURGE).