|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Копирование файлов |
|
Любой язык - [решено] Копирование файлов
|
Старожил Сообщения: 186 |
Добрый день. Подскажите пожалуйста по такому вопросу - Есть файлы acp00000NNN, где NN номер по порядку. Каждый день с утра данные файлы, начиная с порядкового номера 01, начинают падать в папку C:/111/. Из этой папки их нужно скопировать в папку C:/222/ где их подхватывает другая программа и переносит к себе, т.е. после того как программа их подхватила данных файлов в папке 222 нет. Вопрос заключается в том, что из папки 111 нужно копировать только свежий, т.е. только что пришедший файл, а те которые были скопированы ранее не трогать.
Как возможно сделать подобное копирование средствами cmd или vbs, на крайний случай powershell |
|
Отправлено: 15:57, 21-03-2013 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Цитата:
Вот вариант, где лог-файл по дате в, например, корне диска E:\ @Echo Off Set Otkuda=E:\111\ Set Kuda=E:\222\ Set Log=E:\%Date:~6,4%%Date:~3,2%%Date:~0,2%_%~nx0.log If Not Exist %Log% ( Echo %Log%>>%Log% ) FOR /F "usebackq delims=" %%f IN (`xcopy %Otkuda%*.* %Kuda% /Y /EXCLUDE:%Log%`) DO ( If Exist "%%f" Echo %%f>>%Log% ) Set Log=%Otkuda%%0.log Или если делать лог-файл с именем E:\111\acp00000log. то заменить такой строкой Set Log=%Otkuda%acp00000log. |
|
------- Последний раз редактировалось megaloman, 25-03-2013 в 12:09. Причина: Исправлено %0.log на %~nx0.log для обеспечения работоспособности, если батник запускается не из текущей директории Отправлено: 17:04, 22-03-2013 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 186
|
Профиль | Отправить PM | Цитировать Огромное спасибо !!!
|
Отправлено: 10:31, 23-03-2013 | #12 |
Старожил Сообщения: 186
|
Профиль | Отправить PM | Цитировать Вышел на работу, попробовал скрипт:
C:\>Set Otkuda=c:\111\ C:\>Set Kuda=c:\222\ C:\>Set Log=c:\20130325_"C:\test.bat".log C:\>If Not Exist c:\20130325_"C:\test.bat".log (Echo c:\20130325_"C:\test.bat".l og 1>>c:\20130325_"C:\test.bat".log ) Синтаксическая ошибка в имени файла, имени папки или метке тома. C:\>pause Для продолжения нажмите любую клавишу . . . C:\>FOR /F "usebackq delims=" %f IN (`xcopy c:\111\*.* c:\222\ /Y /EXCLUDE: c:\20130325_"C:\test.bat".log`) DO (If Exist "%f" Echo %f 1>>c:\20130325_"C:\tes t.bat".log ) "xcopy" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. |
Отправлено: 11:34, 25-03-2013 | #13 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Цитата:
У меня Set Log=C:\%Date:~6,4%%Date:~3,2%%Date:~0,2%_%0.log - то есть файл сегодня автоматически создастся с именем C:\20130325_nameofbat.bat.log - где nameofbat.bat наименование батника (не делайте его с пробелами или на русском языке), т е имя в Вашем случае будет C:\20130325_test.bat.log Во вторых, если батник запускаете не из текущей директории (что, судя по примеру, и произошло), то сделайте Set Log=C:\%Date:~6,4%%Date:~3,2%%Date:~0,2%_%~nx0.log В третих, если батник запускаете из командного окна, попробуйте выполнить ручками предварительно команды xcopy /? Если она выполнится успешно, батник будет работать, иначе проблемы не в батнике Можно тогда попробовать команду Path, среди доступных путей должно быть C:\Windows\system32; иначе система не находит файл xcopy.exe ИМХО, этот стандартный путь должен присутствовать в системе в переменных среды. |
|
------- Последний раз редактировалось megaloman, 25-03-2013 в 12:20. Отправлено: 12:04, 25-03-2013 | #14 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Попробуйте так: Ибо имя батника может содержать пробел. |
|
Отправлено: 12:15, 25-03-2013 | #15 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать gora, %0 кавычки не возвращает.
|
------- Отправлено: 13:49, 25-03-2013 | #16 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
@Echo Off :: Кодировка файла 'Кирилица DOS' (866) Echo Запись Значение Echo. Echo %%0 %0 Echo %%~0 %~0 Pause>Nul |
|
Отправлено: 14:05, 25-03-2013 | #17 |
Старожил Сообщения: 186
|
Профиль | Отправить PM | Цитировать со всем разобрался, всем спасибо!!!
|
Отправлено: 15:25, 25-03-2013 | #18 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать gora, Насчёт кавычек %0 я погорячился, но с кавычками у меня другая проблема, в xcopy в ключе /EXCLUDE: мне не удавалось пользоваться файлом, имя которого в кавычках.
|
------- Отправлено: 16:16, 25-03-2013 | #19 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Можно обойти так: |
|
Отправлено: 18:53, 25-03-2013 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
HDD - Копирование файлов | Brard | Накопители (SSD, HDD, USB Flash) | 0 | 18-10-2011 17:26 | |
копирование файлов и запуск | e9990638 | Хочу все знать | 0 | 04-04-2011 11:28 | |
CMD/BAT - Копирование новых файлов | Доктор Ливси | Скриптовые языки администрирования Windows | 1 | 08-11-2010 12:37 | |
CMD/BAT - Копирование файлов | LightZone | Скриптовые языки администрирования Windows | 4 | 13-10-2010 13:33 | |
[решено] Копирование файлов | AlexM | AutoIt | 5 | 03-05-2010 23:43 |
|