Здравствуйте!
Подскажите, пожалуйста, как из бат-файла можно переименовать другой файл? Нужно сделать следующее:
1) Сначала вызывается одна программа, после нее остается файл всегда с одним и тем же именем.
2) И каждый раз этот файл нужно переименовывать, например, так
ДДММГГГГ или хотя бы по возрастанию.
Т.е. у меня постоянно выгружается база в один и тот же файл (например, base.zip). Я хочу в батнике написать какую ни будь команду, что бы он переименовывался в формате ДДММГГГГ (день-месяц-год).
Цитата: Т.е. у меня постоянно выгружается база в один и тот же файл (например, base.zip). Я хочу в батнике написать какую ни будь команду, что бы он переименовывался в формате ДДММГГГГ (день-месяц-год).
А нафига вообще выгружаеш базу
Делай архивацию и всё всей базы
Напиши
батник засунь его в шедулер и все а шедулер будет сам ему имя двать даты и все :-)
Откуда ты параметры решил передавать, если батник запускается, скажем руками?
Конкретное решение давай, а не пустые слова, типа "даром", "да я делал это по молодости" и пр.
И уж совсем только криворукий ламер будет ради 2х строк батника нанимать программера, да еще и "пару пива"
ему подгонять... :-`
ЗЫ: при том что в этой ветке уже есть работающий пример решения...
Цитата: Откуда ты параметры решил передавать, если батник запускается, скажем руками?
Конкретное решение давай, а не пустые слова, типа "даром", "да я делал это по молодости" и пр.
И уж совсем только криворукий ламер будет ради 2х строк батника нанимать программера, да еще и "пару
пива" ему подгонять... :-`
ЗЫ: при том что в этой ветке уже есть работающий пример решения...
ну ладна к примеру пишем прогу на ... да хоть паскале (ой давно не писал)
program time;
uses DOS;
begin
halt(тут формируем из геттайм число DDMMYY); *точно не помню*
end.
компилим
в батнике
.......
time.exe
..
далее значение из ехешника будет в переменной %errorlevel%.... далее наверное понятно... можно вообще менять из си, паскаля, асма любые досовские переменные (да и свои создавать)... не ленитесь почитайте хелп по паскалю, надеюсь работу в bat с переменными знаете?... прошу не указывать на возможные
неточности (очень давно этим занимался и уж поверте сделал многое и такой механизм работал)... дело в том что последние года 4 моя работа с программизмом не пересекается.. (разве что JAVA PERL и HTML (если назвать языком) но в свое время написано много и есть даже публикации и прочее...(для тех кто
совневается в моей компетентности ;-) )
в хелпе по борланду точно есть изменение дос- переменной, или выход параметра в паскале хелп по dos.obj в си io.h
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.
(надо запустить получившийся ехешник с параметром, равным имени файла, который надо переименовать)
Как видим, гимору больше гораздо.
Внимание! сейчас Вы не авторизованы и не можете подавать сообщения как зарегистрированный пользователь.
Чтобы авторизоваться, нажмите на эту ссылку (после авторизации вы вернетесь на
эту же страницу)