CMD/BAT - [решено] Выбор файлов из списка с последующим копированием и переносом в другую папку

Аватара пользователя
yaoleg2

CMD/BAT - [решено] Выбор файлов из списка с последующим копированием и переносом в другую папку

Сообщение yaoleg2 »

В папке есть произвольное количество файлов (от 1 до 25), тип файлов – txt, названия файлов длиною 8 английских букв и цифр, первые 2 символа в названии файлов всегда одинаковые и состоят из цифр 12 (маска 12??????.txt).

Как сделать чтобы можно было выбрать файл из списка 12AS0G04.TXT, 12AS0C06.TXT, 128U0G02.TXT

Код:

Код: Выделить всё

Dir /A-D /B /S C:\1\12??????.txt

и скопировать с тем же именем файла в другую папку, а потом еще и перенести с переименованием первоначальный файл (например: с 128U0G02.TXT на 1.TXT)?

Суть в том, чтобы обрабатывать файлы по очереди: 1.Скопировать, 2.Перенести+переименовать, 3. Дальнейшая обработка файла пользователем.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Выбор файлов из списка с последующим копированием и переносом в другую папку

Сообщение Iska »

yaoleg2, у Вас что-то «смешались в кучу кони, люди». Не очень понятно, что конкретно Вам нужно, в чём у Вас, собственно, проблема.
Аватара пользователя
Guest

Re: CMD/BAT - [решено] Выбор файлов из списка с последующим копированием и переносом в другую папку

Сообщение Guest »

Как вы и просили, поправил.



Код:

Код: Выделить всё

@Echo Off
Set Source=C:\Prog
Set Destination=E:\Prog
If Exist %Destination%\IN\1.txt (Exit 1)
For /F "tokens=*" %%F In ('Dir %Source%\INP\12??????.TXT /B') Do (
Copy %Source%\INP\%%F %Destination%\IN\
Ren %Destination%\IN\%%F 1.txt
Move %Source%\INP\%%F %Destination%\INS\
Exit
)
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Выбор файлов из списка с последующим копированием и переносом в другую папку

Сообщение Iska »

Надо скопировать файл в другую папку название которого уникально кроме первых двух символов. Для этого и нужно посмотреть какие файлы есть в папке, а потом копировать/переносить по очереди, а не все одновременно как при обычной обработке скрипта.
Аватара пользователя
yaoleg2

Re: CMD/BAT - [решено] Выбор файлов из списка с последующим копированием и переносом в другую папку

Сообщение yaoleg2 »

А как скриптом скопировать всего лишь один файл по маске если обычно он копирует все сразу?
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Выбор файлов из списка с последующим копированием и переносом в другую папку

Сообщение Iska »

yaoleg2, ничего не понятно. «move» нечего будет перемещать.



Я имел в виду иное: «Имеются, например, такие-то и такие-то файлы (перечислили их), я хочу получить то-то и то-то (написали), использую для этого такой-то код (привели код), получаю то-то и то-то (написали, что получили в итоге)». Тогда станет понятно.
Аватара пользователя
yaoleg2

Re: CMD/BAT - [решено] Выбор файлов из списка с последующим копированием и переносом в другую папку

Сообщение yaoleg2 »

1. Файлы: 12AS0G04.TXT, 12AS0C06.TXT, 128U0G02.TXT и т.п.



2. Надо чтобы эти файлы скрипт копировал/переносил по одному! Файл 12AS0G04.TXT скопировал в папку E:\Prog\IN\ при этом сменил название на 1.txt, а после копирования файла 12AS0G04.TXT перенес его с папки C:\Prog\inp\12??????.txt в папку E:\Prog\INS\



3. Этот код нормально работает когда в папке C:\Prog\inp\ один файл 12??????.txt и не работает когда их 2 и более:



Код:

Код: Выделить всё

copy C:\Prog\inp\12??????.txt E:\Prog\IN\
ren E:\Prog\IN\12??????.txt 1.txt 
move C:\Prog\inp\12??????.txt E:\Prog\INS\

4. В тоге получаю в папке E:\Prog\IN\ файл 1.txt, а в папке E:\Prog\INS\ файл 12AS0G04.TXT которые отличаются друг от друга лишь названием.

Скрипт должен для обработки выбрать только один файл если в папке будет несколько файлов которые будут соответствовать маске файла!
Аватара пользователя
Guest

Re: CMD/BAT - [решено] Выбор файлов из списка с последующим копированием и переносом в другую папку

Сообщение Guest »

yaoleg2, вот этот код делает то, что вам нужно.

Проследите, чтобы поддиректории (in, ins, inp) уже были созданы, я не делал проверку на их существование.





Код:

Код: Выделить всё

@Echo Off
Set Source=C:\Prog
Set Destination=E:\Prog
For /F "tokens=*" %%F In ('Dir %Source%\INP\12??????.TXT /B') Do (
Copy %Source%\INP\%%F %Destination%\IN\
Ren %Destination%\IN\%%F 1.txt
Move %Source%\INP\%%F %Destination%\INS\
Exit
)
Ответить

Вернуться в «Скриптовые языки администрирования Windows»