|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Копирование нескольких файлов из папки в другую с прошедшей датой |
|
CMD/BAT - Копирование нескольких файлов из папки в другую с прошедшей датой
|
Новый участник Сообщения: 3 |
Профиль | Отправить PM | Цитировать Доброго времени суток! Помогите пожалуйста решить одну задачу. Есть программа которая создает отчеты в некой папке "1" , каждый день в 6 утра появляются 4 файла отчета их нужно скопировать в другую папку по сети ( папка должна быть с датой предыдущего дня такого типа (дата\месяц\год). Например сегодня 3.08.2013 в 6 утра в папке "1" появятся 4 файла отчета за 2.08.2013 их нужно скопировать в созданную папку по сети с такой же датой 2.08.2013
Вот что примерно нашел chcp 1251 echo off cls md \\SERVER-1\Obmen\%date:~6,4%.%date:~3,2%.%date:~0,2% if not exist \\SERVER-1\Obmen\%date:~6,4%.%date:~3,2%.%date:~0,2% goto error5 xcopy D:\1 \\SERVER-1\Obmen\%date:~6,4%.%date:~3,2%.%date:~0,2% /y /e /z /c /h goto exit :exit Таким образом папка создается но с текущей датой (3.08.2013) а нужно на день раньше (2.08.2013) Файлы копируются все подряд Нужно именно последние созданные 4 файла так же нашел вот такой код set dir1=[Путь к папке с файлами] set dir2=[Путь к папке для размещения копий] setlocal enabledelayedexpansion set /a num=0 set /a err=0 for /f "tokens=* delims=" %%i in ('dir /b /o:-d /t:W "%dir1%\*.*"') do ( set /a num+=1 if /i !num! leq [количество копируемых файлов] ( copy "%dir1%\%%i" "%dir2%\" > nul if errorlevel 1 (echo %%i >> errorslog.txt set /a err+=1 ) echo copy file...%%i) else ( echo skip file... %%i ) ) echo COUNT OF ERRORS: %err% pause Описание кода: В квадратные скобки необходимо подставить реальные значения. Директива setlocal enabledelayedexpansion включает режим отложенного расширения переменных, который позволяет сделать изменения счетчика num видимым внутри цикла (по умолчанию это не так). Команда dir /b /o:-d /t:W "%dir1%\*.*" определяет порядок копирования файлов. В данном случае первым будет самый новый файл. При помощи других ключей команды dir можно задать другие условия. |
|
Отправлено: 08:40, 03-08-2013 |
Пользователь Сообщения: 124
|
Профиль | Отправить PM | Цитировать #Powershell script. #Don't forget unlock script executing by #using command "Set-ExecutionPolicy RemoteSigned" or "Set-ExecutionPolicy Unrestricted" #Save this file with ".ps1" extension #перемеменная OlderThan отвечает за разницу дней от текущей даты $SourcePath="D:\1" $DestinationPath="\\SERVER-1\Obmen\" $OlderThan=New-TimeSpan -Days 1 $Yesterday=Get-Date -Date ((Get-Date)-$OlderThan) -Format dd.MM.yyyy New-Item "${DestinationPath}\${Yesterday}" -ItemType Directory if (-not (Test-Path -Path "${DestinationPath}\${Yesterday}")) { "Ошибка создания папки" return } Get-ChildItem $SourcePath | ` Where-Object {$_.Attributes -ne [System.IO.FileAttributes]::Directory} | ` Sort-Object -Property CreationTime -Descending | ` Select-Object -First 4 | ` Copy-Item -Destination "${DestinationPath}\${Yesterday}" -Force |
------- Отправлено: 14:13, 03-08-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Большое спасибо!!!)все заработало) пришлось повозиться с PowerShell на WS2003
|
Отправлено: 21:39, 05-08-2013 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата salmans:
|
|
Отправлено: 22:31, 05-08-2013 | #4 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать да поставить поставил а разрешение ны выполнение скрипта не активировалось никак( пока обновление небольшое не поставил не заработало)
|
|
Отправлено: 02:40, 06-08-2013 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Как именно пытались разрешить исполнение скриптов? И что за обновление?
|
Отправлено: 03:01, 06-08-2013 | #6 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - [решено] Создание папки с датой в названии и копирование туда файлов | Chiz3000 | Скриптовые языки администрирования Windows | 2 | 30-07-2013 10:09 | |
CMD/BAT - Поиск и копирование нескольких строк из текстового файла. | valen | Скриптовые языки администрирования Windows | 0 | 07-11-2011 17:27 | |
CMD/BAT - [решено] смена размера копируемых файлов из одной папки в другую | Вовка13 | Скриптовые языки администрирования Windows | 4 | 10-09-2011 22:07 | |
CMD/BAT - Перемещение нескольких папок из папки E2E2~1 | ameds | Скриптовые языки администрирования Windows | 12 | 23-06-2010 17:27 | |
CMD/BAT - [решено] Копирование с флешки в папку на компьютере файлов с текущей датой | bazik83 | Скриптовые языки администрирования Windows | 6 | 19-05-2010 10:17 |
|