0 / 0 / 0
Регистрация: 07.03.2014
Сообщений: 7
1

Копирование произвольного числа файлов, заданных аргументами, из текущего каталога в указываемый каталог

17.03.2014, 13:09. Показов 2907. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, друзья!
Нужно написать такой bat-ник, в написании пакетных файлов совсем не силен, но сделать надо...
Помогите пожалуйста, если это в Ваших силах.
Если не трудно, то прокомментируйте Ваш батник, т.к. хотелось всё таки разобраться, что к чему.

P.S. Вот собственно задание:
Разработать командный файл, копирующий произволь-
ное число файлов, заданных аргументами, из текущего каталога
в указываемый каталог. Используйте проверку на пустые пара-
метры и команду SHIFT


Заранее благодарен!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.03.2014, 13:09
Ответы с готовыми решениями:

Копирование произвольного числа файлов, заданных аргументами, из текущего каталога в указываемый каталог
Здравствуйте! помогите разобраться с файлом Разработать командный файл, копирующий произвольное...

Копирование из текущего каталога всех файлов с расширением .txt, кроме одного указанного, в указанный каталог
Очень нужна помощь в написании бат файла или даже в исправлении. ниже задание и код,но нужно чтобы...

Копирование файлов, указанных аргументами bat-файла, в один каталог
Написать bat файл для обработки фиксированного числа параметров. Согласно условию задачи в каталоге...

Резервное копирование файлов, заданных аргументами
Имеется такое задание: Я третий день изучаю bash и набросал очень примитивный код: ...

4
Эксперт WindowsАвтор FAQ
18042 / 7645 / 891
Регистрация: 25.12.2011
Сообщений: 11,426
Записей в блоге: 17
18.03.2014, 00:39 2
Лучший ответ Сообщение было отмечено Dragokas как решение

Решение

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
SetLocal EnableExtensions
if "%~2"=="" goto usage
:begin
copy "%~2" "%~1"
shift /2
if "%~2" neq "" goto begin
pause
exit /B
 
:usage
echo Использование: %~n0 [целевой_каталог] [файл_1] <файл_2> ... <файл_n>
exit /B
Собственно: включается расширенный режим обработки команд, что дает возможность использовать shift с ключами (по-умолчанию, он и так включен, так что в общем можно строку 2 не писать).
Проверяется задан ли 2-й аргумент (а значит и 1-й, хотя не факт). Если нет, отправляем пользователя читать руководство.
Начинается цикл.
Копируется файл, заданный 2-м аргументом в папку, указанную 1-м аргументом.
Shift /2 - сдвиг аргументов влево (сдвигается все на 1 шаг и накладівается на 2-й аргумент, а 1-й не трогаем).
Получаем нечто вроде:
Было:
1 2 3 4 5
Стало:
1 3 4 5
С кажой итерацией цикла будет:
1 4 5
1 5
1
После сдвига проверяется, осталось ли еще значение под 2-м аргументом. Если да, повторяем цикл.
Иначе выходим.

Пример использования:
Bash
1
[Имя батника] [Папка, куда копируется] [имя файла в текущей папке] [второй файл по желанию и т.д.]
2
0 / 0 / 0
Регистрация: 07.03.2014
Сообщений: 7
18.03.2014, 10:02  [ТС] 3
Большое спасибо!
Один момент под вопросом.
Начал проверять батник, возникла проблема, а конкретно:
При запуске без указания аргументов (например: введен только 1 аргумент, либо аргументы не введены), батник не переходит к блоку "usage", а просто пишет "ошибка в синтаксисе".
Как исправить?
0
Эксперт WindowsАвтор FAQ
18042 / 7645 / 891
Регистрация: 25.12.2011
Сообщений: 11,426
Записей в блоге: 17
18.03.2014, 21:34 4
Ему знаки <> не понравились. Они имеют специальное значение в CMD. Нужно экранировать.

Bash
1
echo Использование: %~n0 [целевой_каталог] [файл_1] ^<файл_2^> ... ^<файл_n^>
0
0 / 0 / 0
Регистрация: 07.03.2014
Сообщений: 7
18.03.2014, 23:03  [ТС] 5
Спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2014, 23:03
Помогаю со студенческими работами здесь

Копирование всех файлов текущего каталога
Пожалуйста!! Надо написать командный файл, чтобы для каждого из файлов в текущем каталоге...

Копирование каталога с сетевого диска в каталог на локальном диске с заменой всех подкаталогов и файлов
Dragokas, здравствуйте, помогите моей проблеме, поиски решений пока ни к чему не привели, может...

Создать каталог и скопировать туда все файлы из текущего каталога
помогите, пожалуйста! на языке bash создать скрит создающий в домашнем каталоге пользователя...

Копирование файла из каталога в каталог
Здравствуйте! может кто поможет? как скопировать файл в c:\2\???? напрямую!!!! Спасибо!!!...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru