Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Windows > Подскажите по Bat файлу


Автор: MsdLamer 24.3.2009, 10:27
Добрый день мастера. Написал Бат файл для копировния файлов из папки по дате: 

set "d=%date:~0,2%"
set "m=%date:~3,2%"
set "y=%date:~6,4%"
set /p "given_date=Date: "
if defined given_date (
set "d=%given_date:~0,2%"
set "m=%given_date:~3,2%"
set "y=%given_date:~6,4%"
)
xcopy /d:%m%-%d%-%y% N:\Mail\1\1???????.txt C:\Statistic\
xcopy /d:%m%-%d%-%y% N:\Mail\2\2???????.txt C:\Statistic\

Проблема вот в чем, когда я например ввожу число в поле Date: ... ну скажем сегодня 22.03.09 а я ввожу 15.03.09 то программа копирует все файлы начиная с 15 числа..... а мне нужно чтобы копировались файлы только за 15 число.... Подскажите как поправить, спасибо.

Автор: Akina 24.3.2009, 10:51
Цитата(MsdLamer @  24.3.2009,  11:27 Найти цитируемый пост)
мне нужно чтобы копировались файлы только за 15 число

xcopy не предоставляет такой возможности

Автор: MsdLamer 24.3.2009, 10:58
А как тогда переделать чтобы было правильно, что то не соображу....  smile , или хотябы может какой то новый подход подскажите к проблеме.... спасибо большое 

Автор: MsdLamer 24.3.2009, 13:16
или хотябы может какой то новый подход подскажите к проблеме.... спасибо большое  smile 

Автор: 01MDM 25.3.2009, 06:16
MsdLamer, 

Если стоит вопрос, что бы скопировать файлы ТОЛЬКО за 15 число, то здесь все просто:
Код

@echo off
pushd "C:\Some Folder"
for /f "tokens=*" %%i in ('dir /b /a-d') do call:job %%~ti "%%i"
popd
goto:eof

:job
if %1==15.03.2009 copy %3 "Z:\Some Folder"


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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)