我需要帮助完成一项任务
我需要复制一个导出的文件从子目录到一个新的文件夹位置,并让他们重命名。问题是所有导出的文件都有相同的名称,并且高达500个。
--Old Folder
---Export1
---Scan.TIF
---Export2
---Scan.TIF
---Export3
---Scan.TIF我尝试了下面的链接,这是很好的,但数据会到处都是。例如,在新文件夹位置中复制和重命名的文件名为例如SCAN13.TIF实际上是来自子目录Export24的文档
https://sumtips.com/snippets/powershell/copy-files-rename-duplicates-subfolder/
我需要一个脚本的帮助,该脚本可以将文件从所有子目录复制到一个新位置,重命名并匹配数据。
这是可以通过脚本完成的,还是会有这样的工具呢?
耽误您时间,实在对不起
发布于 2018-12-07 03:39:32
此脚本使用正则表达式获取scan.tif文件目录名的尾随号。
-match操作符将RegEx捕获组()存储在$Matches集合中,该集合用于使用-f(ormat)运算符构建目标名称。
## Q:\Test\2018\12\07\SO_53661264.ps1
$Src = "A:\Old Folder"
$Dst = "A:\New Folder"
Set-Location $Src
Get-ChildItem Scan.tif -Recurse -File |
Where {$_.Directory.Name -match 'Export(\d+)$'} |
Copy-Item -Destination {Join-Path $Dst ("Scan{0}.TIF" -f $Matches[1])} -WhatIf如果输出看起来没有问题,请删除/注释掉尾随的-WhatIf参数。
运行脚本后,我的ramdisk的示例tree /f:
> tree /F \
Auflistung der Ordnerpfade für Volume RamDisk
├───New Folder
│ Scan1.TIF
│ Scan2.TIF
│ Scan3.TIF
│
└───Old Folder
├───Export1
│ Scan.TIF
│
├───Export2
│ Scan.TIF
│
└───Export3
Scan.TIF发布于 2018-12-07 00:43:26
如果我对你的理解是正确的,那么以下几点应该是可行的:
$source = "C:\test"
$Destination = "C:\Users\user\Documents\Tests"
$i = 1
foreach ($file in (Get-ChildItem -Recurse $source -Filter *.TIF)) {
Copy-Item $file.FullName -Destination "$destination\Scan$i.TIF"
$i++
}您需要更改$source和$destination变量。源是要从其中复制的文件夹的根目录。
最终结果将是源目录下的任何.TIF文件被复制到具有文件名Scan[$i].TIF的目标文件夹中,在该文件夹中,复制的每个文件的数量将迭代1。
发布于 2019-05-31 18:50:39
你可以先试试这个
将文件夹的名称放在文件名的开头。
Get-ChildItem <Directory of File> -Filter *.ext -Recurse | Rename-Item -NewName {$_.Directory.Name+'_'+$_.Name}这并不是你想要的全部答案,而是你所需要的一部分。
https://stackoverflow.com/questions/53661264
复制相似问题