我的文件结构如下
C:\photo1\2018-07-26\*.jpg
C:\photo1\2018-07-27\*.jpg
C:\photo1\2018-07-30\*.jpg
C:\photo2\2018-07-26\*.jpg
C:\photo2\2018-07-27\*.jpg
C:\photo2\2018-07-30\*.jpg
新文件将添加到最新日期文件夹中。我正在尝试将所有文件复制到没有子文件夹的文件夹中
C:\photo1\*\*.jpg -> C:\allphoto1\*.jpg
C:\photo2\*\*.jpg -> C:\allphoto2\*.jpg
并在添加新文件时实时显示。有人知道如何使用批处理文件或其他软件执行此操作吗?
答案1
您可以使用以下命令看看是否有帮助。
cd /d "C:\photo1"
for /r %d in (*) do copy "%d" "C:\allphoto1"
cd /d "C:\photo2"
for /r %d in (*) do copy "%d" "C:\allphoto2"
这将复制相册:,以及子文件夹中的文件在相册:到目录:\allphoto1
或者您也可以移动、替换。
cd /d "C:\photo1"
for /r %d in (*) do *move* "%d" "C:\allphoto1"
更新:您可以使用以下内容测试脚本文件,然后编辑测试脚本并根据您的要求更改路径。
@echo off
@cd /d c:\photo1
@for /r %%d in (*) do move "%%d" "C:\allphoto1"
@cd /d c:\photo2
@for /r %%d in (*) do move "%%d" "C:\allphoto2"
@pause
只需创建一个新的 txt 文件,然后输入上述命令,并保存为 test.bat。当你想移动它们时,只需运行它即可。
—————————————————————————————————————————————————
或者您可以使用这个 powershell 脚本。
[CmdletBinding()]
param
(
[parameter(Mandatory=$true)]
[string]$sourcepath,
[parameter(Mandatory=$true)]
[string]$destinition
)
Write-Verbose "copy from one path to another path"
Get-ChildItem $sourcepath | ForEach-Object -Process{
if($_ -is [System.IO.FileInfo])
{
Copy-Item -Literalpath ( $_.PSpath ) -Destination $destinition -force -Recurse
}
}
Write-Verbose“脚本完成”
该脚本运行时需要输入目录,可以在destination和sourcepath中添加目录。