В Windows Server (Data Center? 2008?) Я пытаюсь настроить запланированную задачу, которая будет:
Ниже приводится то, что у меня есть для пакетного файла, но я борюсь. Я также открыт для другой техники / механизма.
@setlocal enableextensions enabledelayedexpansion
@echo off
SET MoveToDirectory=M:\_SourceVideosFromProduction
ECHO MoveToDirectory=%MoveToDirectory%
pause
for /r %%i in (*) do (
REM ECHO %%i
REM ECHO %%~nxi
REM ECHO %%~ni
REM ECHO filename=%filename%
REM SET CurrentFilename=%%~ni
REM ECHO CurrentFilename=%CurrentFilename%
IF NOT %%~ni==__MoveSourceFiles (
IF NOT x%%%~ni:\.=%==x%%%~ni% DO (
REM SET HasDot=0
REM FOR /F %%g IN %filename% do (
REM IF %%g==. (
ECHO %filename%
REM )
)
)
)
pause
вот способ сделать это в PowerShell. Сохраните как файл .ps1. Установите для выполнения команду remoteigned из командной строки PowerShell (запуск с правами администратора): Set-ExecutionPolicy RemoteSigned
Я создал и протестировал для вас этот сценарий на основании того, что вы просили
Затем вам нужно создать запланированную задачу, которая вызывает powershell.exe со сценарием в качестве аргумента
$folder_source="c:\source"
$folder_dest="c:\dest"
$twin_files=@(".flv",".mpg")
foreach ($file in (get-childitem $folder_source))
{
$move=$true
foreach ($ext in $twin_files)
{
$filetocheck=$file.FullName+"$ext"
if (!(Test-Path $filetocheck))
{
write-Output "$filetocheck not exist"
$move=$false
}
}
if ($move -eq $true)
{
write-output "files are being moved for $($file.FullName)"
move-Item $file.FullName $folder_Dest
foreach ($ext in $twin_files)
{
$filetocheck=$file.FullName+"$ext"
move-Item $filetocheck $folder_Dest
}
}
}