![]() |
Скопировть только самый новый файл - который создан текущей датой
Здравствуйте,
Имеется скрипт который копирует самый "свежий" файл в папке и шифрует его @echo off setlocal for /f "tokens=*" %%i in (' dir /b "Y:\*.xml" ') do set "file=%%i" copy "Y:\%file%" "D:\V" cry "D:\V\%file%" Подскажите пожалуйста, как добавить в приведенный скрипт, проверку на дату, чтобы осуществить следующее: Скрипт должен копировать с диска Y:\ в D:\V только тот файл который является "свежим" - новым и у которого дата создания текущая. Заранее спасибо. |
Цитата:
Цитата:
Код:
@echo off |
Скопировались все файлы,а нужно, чтобы только один предположим батник запускается каждый день, а в папке много файлов xml, и каждый день в папке где много файлов создается еще один файл с текущей датой создания (и датой изменения Ну как пример сегодня 27.04.2011) его необходимо скопировать
|
Цитата:
- создал диск Y: (через SUBST) - создал на Y: три файла: 1.xml, 2.xml, 3.xml (соответственно, у всех дата одна) - создал папку D:\V\ - запустил батник, результат: Код:
Скопировано файлов: 1. |
Вложений: 1
Сделал так переносятся все файлы где ошибка у меня ? Файл прикрепил вот его код
на всякий @echo off for /f "delims=" %%i in ('dir/b/a-d/od "H:\*.xml"') do ( for /f %%a in ("%%~ti") do set "file=%%i") copy "H:\%file%" "X:\V" rem cry "X:\V\%file%" |
Вложений: 1
Пробовал так тоже все файлы копирует
@echo off for /f "delims=" %%i in ('dir/b/a-d/od "X:\old\*.txt"') do ( for /f %%a in ("%%~ti") do set "file=%%i") copy "X:\old\%file%" "X:\new" В папку old кидаю файл readme.txt и создаю новый 1.txt |
Код:
@echo off |
Нет не работает, все равно все файлы копирует, может быть убрать все лишние условия и сделать проверку просто по текущей дате - если дата в системе совпадает с датой в файле, то файл скопировать ?!
У меня Seven x64 - не знаю что еще подсказать, все остальные батники от amel27 пашут нормально - спасибо ему большое за помощь, а также всем кто мне помогает. |
Цитата:
|
Вложений: 1
Вот прикрепил батник проверь пожалуйста что не так
|
В общем, оно не хочет выдавать %%~ti на другом диске...
Код:
@echo off |
Здравствуйте, Foreigner
Вы писали мне Ваша цитата "В общем, оно не хочет выдавать %%~ti на другом диске..." , ниже приведенный скрипт заработал на Seven x64 вчера,а сегодня попробовал на другой машине на XP (x32), опять стал копировать все файлы, а нужно один по текущей дате, подскажите как сделать так чтобы %%~ti работало, как правильно создать текстовый файл с данным скриптом, чтобы все работало, как вы их создаете - текстовые файлы что у вас свеже написанный в них скрипт работает ? Ваш скрипт @echo off setlocal pushd H:\ for /f "tokens=*" %%i in (' dir /b /od *.xml ') do ( for /f "tokens=1" %%j in ( "%%~ti" ) do if "%%j"=="%date: =0%" set "file=%%i" ) popd copy "H:\%file%" "X:\V" rem cry "X:\V\%file%" |
Не работает так хотя батник лежит на диске X как и папки in и out
@echo off SETLOCAL EnableDelayedExpansion for /f "delims=" %%i in ('dir/b/a-d/od "X:\in\*.txt"') do ( for /f %%a in ("%%~ti") do if "%date%"=="%%a" set "file=%%i") copy "X:\in\%file%" "X:\out" Но работает так причем батник должен лежать на диске X в данном примере @echo off SETLOCAL EnableDelayedExpansion for /f "delims=" %%i in ('dir/b/a-d/od "X:\*.txt"') do ( for /f %%a in ("%%~ti") do if "%date%"=="%%a" set "file=%%i") copy "X:\%file%" "X:\out" |
РЕШЕНО в теме http://forum.oszone.net/thread-205784.html - Не работает скрипт копирования самого свежего файла по текущей дате.
Всем спасибо. |
@echo off
setlocal pushd "папка где нужно найти файлы" || goto:eof for /f "tokens=*" %%i in (' dir /b /od *.расширение файла ') do set "last=%%i" copy "%last%" "куда копируем" popd добавляем || goto:eof ищет и копирует последний файл в папке, батник может находиться в любом месте |
Цитата:
|
Время: 23:21. |
Время: 23:21.
© OSzone.net 2001-