Я хотел бы использовать PowerShell для перемещения набора файлов с одинаковыми именами (1 файл задания и 1 файл триггера с одинаковыми именами, но с разными расширениями) из одного каталога в другой. Смотрите пример ниже.
Исходный каталог содержит job1.zip, job1.trg, job2.zip и job2.trg. Я хотел бы взять совпадающие имена заданий job1.zip и job1.trg и переместить его в dest1folder, только если он пуст, если не переместить его в dest2folder. Затем вернитесь назад, чтобы выполнить ту же логику для job2.zip и job2.trg. Одна вещь, которую я также должен принять во внимание, - это то, что каталог Source может содержать только job1.zip, ожидающий передачи job1.trg. Я новичок в PowerShell и потратил несколько часов, пытаясь заставить его работать безуспешно. Возможно ли это?
Это то, что я имею до сих пор. Я получаю файлы для перемещения в каждую папку назначения, используя логику IF, но она перемещает все файлы в исходном каталоге.
$doirun = (get-childItem "d:\ftproot\pstest\").Count
$filecount = (get-childItem "d:\ftproot\ps2\").Count
if ($doirun -le 1) {exit}
$dir = get-childitem "d:\ftproot\pstest\" | Where-Object {($_.extension -eq ".zip") -or ($_.extension -eq ".trg")}
foreach ($file in $dir)
{
if ($filecount -le 2) {Move-item "d:\ftproot\pstest\$file" "d:\ftproot\ps2\"}
else {Move-item "d:\ftproot\pstest\$file" "d:\ftproot\ps3\"}
}