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

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

Ответить
Настройки темы
Любой язык - [решено] Копирование файлов

Старожил


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

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


Добрый день. Подскажите пожалуйста по такому вопросу - Есть файлы acp00000NNN, где NN номер по порядку. Каждый день с утра данные файлы, начиная с порядкового номера 01, начинают падать в папку C:/111/. Из этой папки их нужно скопировать в папку C:/222/ где их подхватывает другая программа и переносит к себе, т.е. после того как программа их подхватила данных файлов в папке 222 нет. Вопрос заключается в том, что из папки 111 нужно копировать только свежий, т.е. только что пришедший файл, а те которые были скопированы ранее не трогать.

Как возможно сделать подобное копирование средствами cmd или vbs, на крайний случай powershell

Отправлено: 15:57, 21-03-2013

 

Старожил


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

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


да, старые, за вчерашний день удаляются, но в течение дня нет

Отправлено: 20:37, 21-03-2013 | #2



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

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


Ветеран


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

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


Цитата foma24:
где NN номер по порядку. »
Т.е. последние две цифры?
С файлом для записи последнего номера
Код: Выделить весь код
@echo off
setlocal

pushd "c:\111"

set "n=100"
2>nul (0<%date%.txt set /p "n=")

set /a n+=1
2>nul copy acp*%n:~1% "c:\222" && 1>%date%.txt echo %n%

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

Отправлено: 23:25, 21-03-2013 | #3


Старожил


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

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


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

Отправлено: 09:53, 22-03-2013 | #4


Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off
Set Otkuda=E:\111\
Set Kuda=E:\222\

If Not Exist %Otkuda%%0.log (
	Echo %Otkuda%%0.log>>%Otkuda%%0.log
)

FOR /F "usebackq delims=" %%f IN (`xcopy %Otkuda%*.* %Kuda%  /Y /EXCLUDE:%Otkuda%%0.log`) DO (
	If Exist "%%f" Echo %%f>>%Otkuda%%0.log
)
Копирую сразу всё, что не копировалось, за один запуск батника. В папке 111 создаётся лог-файл с именем батника, в который батник при копировании заносит имена файлов, которые в последствии не копируются. Утром вы очищаете папку вместе с лог-файлом. Никаких номеров не анализирую - то, что не скопировано, скопируется. Можно вместо маски *.* в xcopy поставить маску Ваших файлов, например acp00000???. , если в папке пишется что-то еще. В папку 111 батник лучше не размещать. чтобы ненароком не убить.

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


Последний раз редактировалось megaloman, 22-03-2013 в 14:12.

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

Отправлено: 14:03, 22-03-2013 | #5


Старожил


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

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


лог лучше делать по дате, потому как папка 111 очищается другой программой, которая архивирует файлы acp каждое утро

Отправлено: 14:29, 22-03-2013 | #6


Ветеран


Contributor


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

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


Цитата:
лог лучше делать по дате,
- я продумывал этот вариант и отказался. Что будет, если вы запустите на новую дату батник, а 111 еще не очищен - получите кучу ненужных (дай бог, не вредных) файлов в 222.

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

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

Отправлено: 15:33, 22-03-2013 | #7


Старожил


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

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


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

Отправлено: 15:50, 22-03-2013 | #8


Старожил


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

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


все acp00000NNN, и отображает их в самой программе в меню архив (т.е. не просто складывает в папку, а учитывается в самой программе), я не знаю как она отреагирует на появление log файла, поэтому так даже боязнее чем лог по дате

Отправлено: 16:41, 22-03-2013 | #9


Ветеран


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

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


Цитата foma24:
Как сделать так, чтобы кидались сразу несколько файлов ? »
Не проверял:
Код: Выделить весь код
@echo off
setlocal

pushd "c:\111"

:1
set "test=0"
set "n=100"
2>nul (0<%date%.txt set /p "n=")

set /a n+=1
2>nul copy acp*%n:~1% "c:\222" && (

    1>%date%.txt echo %n%
    set "test=1"

) 

if "%test%"=="1" goto:1
popd
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:52, 22-03-2013 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход