Переименовать файл из бат-файла

Здравствуйте!
Подскажите, пожалуйста, как из бат-файла можно переименовать другой файл? Нужно сделать следующее:
1) Сначала вызывается одна программа, после нее остается файл всегда с одним и тем же именем.
2) И каждый раз этот файл нужно переименовывать, например, так ДДММГГГГ или хотя бы по возрастанию.

С уважением, Стас.
0
G оподробнее пожалуйста напиши чтото не догоняю :-)
0
stas_r
Т.е. у меня постоянно выгружается база в один и тот же файл (например, base.zip). Я хочу в батнике написать какую ни будь команду, что бы он переименовывался в формате ДДММГГГГ (день-месяц-год).
0
Т.е. у меня постоянно выгружается база в один и тот же файл (например, base.zip). Я хочу в батнике написать какую ни будь команду, что бы он переименовывался в формате ДДММГГГГ (день-месяц-год).

А нафига вообще выгружаеш базу
Делай архивацию и всё всей базы
Напиши батник засунь его в шедулер и все а шедулер будет сам ему имя двать даты и все :-)
0
Можно так батник пишеш
xcopy C:\File_srv\папка "\\server\backup$\Last_week\%date%\папка\" /e /h /r /y /c /i
:-)
0
ни .bat ни .cmd ИМХО не помогут
нет у них команд работы со временем
а вот .vbs - само то
0
ни .bat ни .cmd ИМХО не помогут
нет у них команд работы со временем
а вот .vbs - само то

Шедулер может вставить дату и запустить cmd :-)
0
Можно даже сообще ние чтоб на мыло тебе валил после того как за архивит всё :-)
0
Bаlu
А ты через копирование с места на место со сменой имени напиши.....
0
Мдя, еще прогу посоветуйте написать на asm'e...
Кажется вопрос стоит довольно четко, и неча извращаться.

Допустим, исходный файл у нас c:\Original_File_Name.dbf

Копируем его туда: c:\Backup\

Короче, создаешь файл copyfile.vbs

Открываешь нотепадом, пишешь:

dim fs, newfn
Set fs = CreateObject("Scripting.FileSystemObject")
newfn = "c:\Backup\Original_File_Name " & Date & ".dbf"
fs.CopyFile "c:\Original_File_Name.dbf", newfn

Сохраняешь, запускаешь, имеешь то, что хотел.
0
а если нужно исходный файл удалять при этом, то меняешь fs.CopyFile на fs.MoveFile
0
ad80120
ren name1 name2 если я не ошибаюсь.... вычислить name2 нада.. или я Вас не так понял?
0
Ну вычисли, раз умный такой...
0
stas_r
Спасибо всем за советы! у меня все получилось.
0
: stas_r@inbox.ru
млин...
опять одно и тоже...((

попроси какого нить программера он тебе напишет фичу и будет у тя полный кулл.
это пять минут + пара пива.
0
ad80120
ну и вычислял .. давненько правда.. а что если уж приперло в батник параметры передавать разучились??!!
0
Откуда ты параметры решил передавать, если батник запускается, скажем руками?
Конкретное решение давай, а не пустые слова, типа "даром", "да я делал это по молодости" и пр.

И уж совсем только криворукий ламер будет ради 2х строк батника нанимать программера, да еще и "пару пива" ему подгонять... :-`


ЗЫ: при том что в этой ветке уже есть работающий пример решения...
0
Откуда ты параметры решил передавать, если батник запускается, скажем руками?
Конкретное решение давай, а не пустые слова, типа "даром", "да я делал это по молодости" и пр.

И уж совсем только криворукий ламер будет ради 2х строк батника нанимать программера, да еще и "пару пива" ему подгонять... :-`


ЗЫ: при том что в этой ветке уже есть работающий пример решения...

Харош мужики ругатся :-)
0
ad80120
ну ладна к примеру пишем прогу на ... да хоть паскале (ой давно не писал)

program time;
uses DOS;
begin
halt(тут формируем из геттайм число DDMMYY); *точно не помню*
end.
компилим


в батнике

.......
time.exe
.. далее значение из ехешника будет в переменной %errorlevel%.... далее наверное понятно... можно вообще менять из си, паскаля, асма любые досовские переменные (да и свои создавать)... не ленитесь почитайте хелп по паскалю, надеюсь работу в bat с переменными знаете?... прошу не указывать на возможные неточности (очень давно этим занимался и уж поверте сделал многое и такой механизм работал)... дело в том что последние года 4 моя работа с программизмом не пересекается.. (разве что JAVA PERL и HTML (если назвать языком) но в свое время написано много и есть даже публикации и прочее...(для тех кто совневается в моей компетентности ;-) )

в хелпе по борланду точно есть изменение дос- переменной, или выход параметра в паскале хелп по dos.obj в си io.h
0
ыыыыыыыыыыыыыыыыыыыыыыы :-(

Не пойму, когда можно всё сделать в нотепаде, зачем огород городить с паскалем. Думаете, у всех есть паскаль и все знают хотя бы что это такое?

Спрашивается, ежели у нас есть паскаль, то зачем нам батник?
Можно и не передавать ниче, сам паскаль всё сделает в 2х строчках............
0
ad80120
Здравствуйте!
Подскажите, пожалуйста, как из бат-файла можно переименовать другой файл? Нужно сделать следующее:


Откуда ты параметры решил передавать, если батник запускается, скажем руками?


конечно можно и просто без него... но им нада именно это....
0
Smash
RTFM, товарищи!
cmd вполне хватает
напишите в командной строке
for /f "tokens=1,2,3 delims=." %a in ('date /t') do echo %a%b%c

вопросы должны отпасть.
0
To 2: easy.

To All: нда, кто не понял, тот пример, что я привел выше на VBS *не надо компилировать*, это и есть готовый батник, без паскаля, пива и прочего :-)
В винде есть такая вещь как Windows Scripting Host (может кто слышал ;-) ). Она *встроенная* в винду, т.е. входит в её поставку :-)

Поэтому создав вышеописанный файлик с вышеописанным содержимым, мы можем сразу его запустить (встроенный транслятор отработает этот *текстовый файл* как готовый ехе-шник), точно так же как и обычный cmd или bat файл и всё будет работать.

ЗЫ на обжект паскале это будет так:
program FileRename;

uses
Windows, SysUtils;

var OrigFileName,FileNameWithDate:String;
DotPos:Byte;
begin
OrigFileName:=ParamStr(1);
if StrRScan(PChar(OrigFileName),'.')=nil then
DotPos:=0
else
DotPos:=Length(OrigFileName)-Length(StrPas(StrRScan(PChar(OrigFileName),'.')));
MessageBox(0,PChar(IntToStr(DotPos)),'',0);
if DotPos>0 then
FileNameWithDate:=Copy(OrigFileName,1,DotPos)+' '+DateTimeToStr(Date)+
Copy(OrigFileName,DotPos+1,Length(OrigFileName)-
Length(Copy(OrigFileName,1,DotPos)))
else
FileNameWithDate:=OrigFileName+' '+DateTimeToStr(Date);
MessageBox(0,PChar(FileNameWithDate),'',0);
MoveFile(PChar(OrigFileName),PChar(FileNameWithDate));
end.

(надо запустить получившийся ехешник с параметром, равным имени файла, который надо переименовать)
Как видим, гимору больше гораздо.
0
ЗЫ ни vbs ни пост Smash'а не сканают под 9х

Там бы, наверное, если по-простому, пришлось на перле скриптик ваять...
0
Smash
Accel, разве речь идет о 9х???
0
Авторизуйтесь, чтобы принять участие в дискуссии.