客户端需要传播到Windows框上相同文件夹结构的大约160种变体的文件的更新副本。有人可以帮助我使用脚本自动执行此操作吗?我是开发人员,但是有脚本的n00b。
文件夹结构如下:
我需要将同一个文件复制到'components'文件夹。
感谢。
答案 0 :(得分:2)
这是我做过的PowerShell解决方案,应该按照你的要求做。您需要编辑SourceDir,Dest和Filter以获取所需的文件。
$SourceDir = "C:\Source"
$Dest = "C:\Root"
$Files = gci -Path $SourceDir -Recurse -Filter "*.txt" |?{$_.Directory -ne $null}
$Index = ($Source.Length)
$SSFile = $UpdatedPath.Substring($Index)
$Index = $SSFile.LastIndexOf("\")
$ChildDir = $SSFile.Substring(0,$Index)
$Root = Dir -Path $Dest|?{$_.Directory -eq $null}
foreach ($File in $Files){
foreach ($Folder in $Root){
$FolderPath = $Folder.FullName
$DropPath = ("{0}{1}" -f$FolderPath, $ChildDir)
Copy-Item -Path $File.FullName -Destination $DropPath
}
}
答案 1 :(得分:1)
作为开发人员,只需枚举第一级的文件夹并为每个文件夹执行复制命令。
伪代码:
for each directory in /root
copy file to /root/directory/components
答案 2 :(得分:0)
使用批处理 “ROBOCOPY”
我用它来更新我的可移动驱动器(USB)
语法:
ROBOCOPY“C:\来自Dir”“C:\ To Dir”[选项] 有关更多信息, 看到 http://ss64.com/nt/robocopy.html
非常适合脚本noobs
答案 3 :(得分:0)
这应该在批处理文件中工作 - 或者如果将所有%%减少到%
,则从命令行工作@echo off
for /d /r "c:\root" %%a in (*) do if /i "%%~nxa"=="components" copy "d:\folder\file.txt" "%%a"