Мне нужен скрипт для циклического перемещения по папке, копирования имени папки и сохранения его в «temp». Затем внутри этой папки скопируйте определенный файл и вставьте его в другую папку с именем «temp.dat».

Например, возьмите имя папки «drivers.dat», извлеките «drivers», затем скопируйте файл «drivers.dat» \«dat», переместите и переименуйте в new_dat \drivers.dat

Спасибо за помощь.


Допустим, это сетевой путь L:\Personal Folders. Здесь 1) Создайте папку «new_dat». 2) Просмотрите папки в каталоге и: a. Возьмите имя папки, извлеките имя папки без расширения .dat, сохраните имя b. В этой папке скопируйте и переименуйте файл данных в name_dat.dat c. Скопируйте новый файл данных в папку «new_dat». 3) Повторите для каждой папки.

Например, возьмите имя папки «2.5V drivers.dat», извлеките «драйверы 2.5V», затем скопируйте файл «2.5V drivers.dat» \«dat», переместите и переименуйте в new_dat \2.5 V drivers.dat

В итоге у нас будет папка new_dat, содержащая все файлы «dat», но переименованная в «folder name.dat».

1 ответ1

0

Вот один написан на 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 часов или что-то еще

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .