我需要一个脚本来循环浏览文件夹并复制文件夹名称并将其保存在“temp”中。然后在该文件夹中复制一个特定文件并将其粘贴到另一个名为“temp.dat”的文件夹中
例如,取“drivers.dat”文件夹名,提取“drivers”,然后复制'drivers.dat'\'dat'文件,移动并重命名为new_dat\drivers.dat
谢谢您的帮助。
假设路径是网络路径 L:\Personal Folders。在这里 1) 创建一个“new_dat”文件夹 2) 循环浏览目录中的文件夹并:a. 获取文件夹名称,提取不带 .dat 扩展名的文件夹名称,保存名称 b. 在该文件夹中复制并将 dat 文件重命名为 name_dat.dat c. 将新的 dat 文件复制到“new_dat”文件夹。3) 对每个 folder.dat 重复此操作
例如,取“2.5V drivers.dat”文件夹名,提取“2.5V drivers”然后复制'2.5V drivers.dat'\'dat'文件,移动并重命名为new_dat\2.5 V drivers.dat
我们最终会得到一个包含所有“dat”文件的 new_dat 文件夹,但将其重命名为“文件夹名称.dat”。
答案1
这是用 PowerShell 3 编写的。
#Set Location to Folder
Set-Location -Path "C:\Personal Folders"
#Check If The Folder "new_dat" exists, if it doesnt, create it
if(!(Test-Path -Path "new_dat"))
{
New-Item -Name "new_dat" -ItemType Directory
}
#Get All The Folders Except "new_dat"
$Folders = Get-ChildItem -Directory | Where-Object {$_.Name -ne "new_dat"}
#This Is Where The Magic Happens
foreach($Folder in $Folders)
{
Get-ChildItem -Path $Folder.FullName -Filter *.dat | Move-Item -Destination (Join-Path -ChildPath ([System.IO.Path]::GetFileNameWithoutExtension($Folder.Name) + "_dat.dat") -Path "C:\Personal Folders\new_dat" )
}
- 安装 PowerShell 3
- 将其放入文本文件并将其命名为 Move.ps1
- 设置计划任务,使其每隔 X 小时或其他时间运行一次