Копирование содержимого из папки с использованием подстановочного знака в каталоге - PullRequest
0 голосов
/ 31 августа 2018

У меня есть каталог, содержащий файлы CSV, которые необходимо переместить в другой каталог:

C:\Users\JohnSmith\Desktop\Testing\report-20180819040000-20180826040000-4

Мы получаем новый файл еженедельно, где будут обновляться даты в имени каталога. Я хочу создать командный файл для копирования этих данных с использованием подстановочного знака на report*, но у меня возникают некоторые проблемы.

Подстановочный знак работает без проблем, когда я впервые перехожу к:

C:\Users\JohnSmith\Desktop\Testing\

затем используйте:

dir report*

Он также отлично работает, когда я перехожу на:

C:\Users\JohnSmith\Desktop\Testing\

затем запустите

copy * C:\Users\JohnSmith\Desktop\Testing\Destination

Моя цель - запустить что-то простое в моем командном файле, как показано ниже:

copy C:\Users\JohnSmith\Desktop\Testing\report* C:\Users\JohnSmith\Desktop\Testing\Destination

Всякий раз, когда я пытаюсь выполнить вышеуказанное, я получаю следующую ошибку:

Система не может найти указанный файл. 0 файл (ов) скопировано.

У кого-нибудь есть предложения?

1 Ответ

0 голосов
/ 02 сентября 2018

Используйте For /D с подстановочными знаками для имени каталога, затем вы можете использовать Copy с подстановочными знаками!

Из командной строки:

For /D %A In ("%UserProfile%\Desktop\Testing\report-*-*-*") Do @Copy "%A\*.csv" "%UserProfile%\Desktop\Testing\Destination">Nul 2>&1

Из пакетного файла:

@For /D %%A In ("%UserProfile%\Desktop\Testing\report-*-*-*") Do @Copy "%%A\*.csv" "%UserProfile%\Desktop\Testing\Destination">Nul 2>&1

В качестве альтернативы вы можете сделать это прямо в приглашении Powershell:

Cp "$($Env:UserProfile)\Desktop\Testing\report-*-*-*\*.csv" "$($Env:UserProfile)\Desktop\Testing\Destination"
...