我需要将所有c:\inetpub
目录复制到新位置,但不包括以下文件夹及其子文件夹:
c:\inetpub\custerr
c:\inetpub\history
c:\inetpub\logs
c:\inetpub\temp
c:\inetpub\wwwroot
字符串
到目前为止,我正在这样做:
# Directory name is created with a format string
$dirName = "\\servername\folder1 _ {0}\inetpub" -f (get-date).ToString("yyyy-MM-dd-hh-mm-ss")
$dirName # Check the output
# Create dir if needed
if(-not (test-path $dirName)) {
md $dirName | out-null
} else {
write-host "$dirName already exists!"
}
#Copy Backup File to Dir
Copy-Item "\\servername\c$\inetpub\*" $dirName -recurse
型
5条答案
按热度按时间xa9qqrwz1#
这是一个你可以做的简单的例子。生成要排除的父文件夹的数组。因为你是通过UNC路径访问它们的,所以我们不能真正使用c:\路径(我们可以绕过这个,但是我将要展示的应该足够好了。
然后使用
Get-ChildItem
获取inetpub目录中的所有文件夹。使用-notin
过滤掉排除项,并将其余项传递给Copy-Item
字符串
您需要至少PowerShell 3.0才能工作。
cygmwpex2#
哦,答案很简单,但似乎我们都是PowerShell新手。
字符串
是
\*
让它工作的。PowerShell很棒,但...
jljoyd4f3#
字符串
替换:
$path
按源文件夹('Folder1', 'File.cmd', 'File.exe', 'Folder2')
由您的特定文件/文件夹排除$destination
按目标文件夹hgqdbh6s4#
我写了这个供日常使用,并将其打包在脚本模块中,它维护了所有的目录结构并支持通配符:
字符串
就叫
Copy-Folder -FromPath inetpub -ToPath new-inetpub -Exclude custerr,history,logs,temp,wwwroot
-FromPath
和-ToPath
可以省略,Copy-Folder inetpub new-inetpub -Exclude custerr,history,logs,temp,wwwroot
个ca1c2owp5#
你可以沿着以下方式做一些事情:
字符串
在你得到你所有的文件夹来过滤它们之后。
此示例将排除名称中包含“old”的任何内容。您可以对要排除的目录执行此操作。
一个完整的例子:
型
对于多个排除,您可以使用
-And
:型