Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] bat файл, копирование с флэшки

Ответить
Настройки темы
CMD/BAT - [решено] bat файл, копирование с флэшки

Пользователь


Сообщения: 82
Благодарности: 3

Профиль | Отправить PM | Цитировать


Допустим надо скопировать файлы из папок, которые на флэшке, на жёсткие диски Windows - с этим трудностей не возникает. А возникает вот в чём, что вставля эту самую флэху в разные компьюетры, то мы получаем изменчивую букву почти на каждой машине, то наша флэшка имеет букву G, на другом H, на третем например J, на чётвёртом ещё как-нибудь назовётся. Как тогда быть с сценарием бат файла?

Отправлено: 20:41, 13-05-2014

 
mwz mwz вне форума

Аватара для mwz

Ушел из жизни


Сообщения: 8595
Благодарности: 2127

Профиль | Сайт | Отправить PM | Цитировать


Discount, сценарий на самой флэшке лежит?

Код: Выделить весь код
setlocal
set FlashLetter=%~d0
copy "FlashLetter\folder\*.*" C:\temp\
скопирует все файлы из папки folder, лежащей в корне флэшки, с которой запущен батник, в папку c:\temp (папка назначения должна существовать; можно сделать в батнике перед командой копирования проверку на её существование и создание её в случае, если она отсутствует).

-------
Mikhail Zhilin


Последний раз редактировалось mwz, 14-05-2014 в 01:23.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:06, 14-05-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 82
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата mwz:
Код:
setlocal
set FlashLetter=%~d0
copy "FlashLetter\folder\*.*" C:\temp\
скопирует все файлы из папки folder, лежащей в корне флэшки, с которой запущен батник, в папку c:\temp (папка назначения должна существовать; можно сделать в батнике перед командой копирования проверку на её существование и создание её в случае, если она отсутствует). »
Спасибо огромное! Если я всё правильно понял, в корне флэхи допустим есть папка folder с моими файлами. Надо все эти файлы копирнуть в несуществующую папку (т.е. её надо создать батником), то в итоге получаем такой скрипт?

setlocal
set FlashLetter=%~d0
MD C:\FolderName
copy "FlashLetter\folder\*.*" C:\FolderName\

???

Последний раз редактировалось Discount, 14-05-2014 в 13:16. Причина: дополнение


Отправлено: 13:15, 14-05-2014 | #3


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Если батник на том же диске (в частности, флэшке), что и копируемые файлы, можно указать полный путь к файлам без указания диска
Код: Выделить весь код
@Echo Off

Set "DirOut=D:\Жил был у бабушки\avz4\Base\"
Set "FileIn=\У попа была собака\Base\*.*"

Md "%DirOut%"

If Exist "%DirOut%" (
       Copy "%FileIn%" "%DirOut%"
) Else (
	Echo Папка для копирования не создана
	Pause
)

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 19:17, 14-05-2014 | #4


Пользователь


Сообщения: 82
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата megaloman:
Если батник на том же диске (в частности, флэшке), что и копируемые файлы, можно указать полный путь к файлам без указания диска
Код:
@Echo Off
Set "DirOut=D:\Жил был у бабушки\avz4\Base\"
Set "FileIn=\У попа была собака\Base\*.*"
Md "%DirOut%"
If Exist "%DirOut%" (
Copy "%FileIn%" "%DirOut%"
) Else (
Echo Папка для копирования не создана
Pause
)
------- »
Если честно немного не понял код, можешь поподробней пожалуйста.
Да, батник лежит в корне флешки.

Кстати с первым кодом что то не получается(

Отправлено: 19:22, 14-05-2014 | #5


Пользователь


Сообщения: 82
Благодарности: 3

Профиль | Отправить PM | Цитировать


получилось с помощью команд

xcopy "%~d0:\Мои файлы\Local" "D:\Data" /c /i /d /e /h /y
Всем спасибо!)
Можно закрывать

Отправлено: 20:54, 14-05-2014 | #6

mwz mwz вне форума

Аватара для mwz

Ушел из жизни


Сообщения: 8595
Благодарности: 2127

Профиль | Сайт | Отправить PM | Цитировать


Цитата Discount:
xcopy "%~d0:\ »
Моя ошибка: FlashLetter -- переменная окружения, и третья строка должна была выглядеть как:
copy "%FlashLetter%\folder\*.*" C:\temp\
(со знаками процента; причём при тестировании у себя я их ставил -- а тут упустил... )

А переменная %~d0 возвращает букву диска или флэшки уже с двоеточием после неё; можете проверить, запустив батник:
Код: Выделить весь код
setlocal
set FlashLetter=%~d0
echo %FlashLetter%
pause
-- во второй и третьей строках буква диска, с которого запущен батник, будет уже с этим двоеточием.

-------
Mikhail Zhilin


Отправлено: 00:28, 15-05-2014 | #7


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Цитата:
Если честно немного не понял код
Код: Выделить весь код
определяю куда будем копировать файлы      Set "DirOut=D:\Жил был у бабушки\avz4\Base\"
определяем откуда копируем                 Set "FileIn=\У попа была собака\Base\*.*"
пытаемся создать папку куда копировать     Md "%DirOut%"
если папка существует (создана)            If Exist "%DirOut%" (
то копируем                                  Copy "%FileIn%" "%DirOut%"
иначе                                           ) Else (
выдаём аварийное сообщение                        Echo Папка для копирования не создана
и останавливаемся, чтобы его прочесть        Pause
Если использовать xcopy, то без проверки возможности копирования в указываемое место можно записать

XCopy "%FileIn%" "%DirOut%" /D /H /-Y
Или, как у Вас,
xcopy "\Мои файлы\Local\*.*" "D:\Data\" /c /i /d /e /h /y

Смысл моего сообщения был в том, что
Цитата:
Если батник на том же диске (в частности, флэшке), что и копируемые файлы, можно указать полный путь к файлам без указания диска
причём батник не обязательно в корне диска.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 15-05-2014 в 12:48.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:42, 15-05-2014 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] bat файл, копирование с флэшки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - копирование из одного каталога в другой bat файл с помощью параметров terror572 Скриптовые языки администрирования Windows 0 18-03-2014 20:16
CMD/BAT - Параллельное копирование файлов в bat. Dremor Скриптовые языки администрирования Windows 18 12-01-2014 23:06
CMD/BAT - BAT-файл копирование\удаление на Synology Silencerun Скриптовые языки администрирования Windows 0 03-07-2012 14:28
CMD/BAT - [решено] .bat Копирование с условием TwoThrones Скриптовые языки администрирования Windows 1 09-01-2011 14:51
CMD/BAT - [решено] программа(.bat файл) которая случайным образом запускает .bat файлы из предложенных gangsterovich Скриптовые языки администрирования Windows 1 07-12-2010 06:45




 
Переход