Переименовать файл из бат-файла
s
stas_r
Здравствуйте!
Подскажите, пожалуйста, как из бат-файла можно переименовать другой файл? Нужно сделать следующее:
1) Сначала вызывается одна программа, после нее остается файл всегда с одним и тем же именем.
2) И каждый раз этот файл нужно переименовывать, например, так ДДММГГГГ или хотя бы по возрастанию.
С уважением, Стас.
Подскажите, пожалуйста, как из бат-файла можно переименовать другой файл? Нужно сделать следующее:
1) Сначала вызывается одна программа, после нее остается файл всегда с одним и тем же именем.
2) И каждый раз этот файл нужно переименовывать, например, так ДДММГГГГ или хотя бы по возрастанию.
С уважением, Стас.
s
stas_r
Т.е. у меня постоянно выгружается база в один и тот же файл (например, base.zip). Я хочу в батнике написать какую ни будь команду, что бы он переименовывался в формате ДДММГГГГ (день-месяц-год).
Т.е. у меня постоянно выгружается база в один и тот же файл (например, base.zip). Я хочу в батнике написать какую ни будь команду, что бы он переименовывался в формате ДДММГГГГ (день-месяц-год).
А нафига вообще выгружаеш базу
Делай архивацию и всё всей базы
Напиши батник засунь его в шедулер и все а шедулер будет сам ему имя двать даты и все :-)
Можно так батник пишеш
xcopy C:\File_srv\папка "\\server\backup$\Last_week\%date%\папка\" /e /h /r /y /c /i
:-)
xcopy C:\File_srv\папка "\\server\backup$\Last_week\%date%\папка\" /e /h /r /y /c /i
:-)
ни .bat ни .cmd ИМХО не помогут
нет у них команд работы со временем
а вот .vbs - само то
нет у них команд работы со временем
а вот .vbs - само то
ни .bat ни .cmd ИМХО не помогут
нет у них команд работы со временем
а вот .vbs - само то
нет у них команд работы со временем
а вот .vbs - само то
Шедулер может вставить дату и запустить cmd :-)
B
Bаlu
А ты через копирование с места на место со сменой имени напиши.....
Мдя, еще прогу посоветуйте написать на 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
Сохраняешь, запускаешь, имеешь то, что хотел.
Кажется вопрос стоит довольно четко, и неча извращаться.
Допустим, исходный файл у нас 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
Сохраняешь, запускаешь, имеешь то, что хотел.
a
ad80120
ren name1 name2 если я не ошибаюсь.... вычислить name2 нада.. или я Вас не так понял?
s
stas_r
Спасибо всем за советы! у меня все получилось.
: stas_r@inbox.ru
млин...
опять одно и тоже...((
попроси какого нить программера он тебе напишет фичу и будет у тя полный кулл.
это пять минут + пара пива.
млин...
опять одно и тоже...((
попроси какого нить программера он тебе напишет фичу и будет у тя полный кулл.
это пять минут + пара пива.
a
ad80120
ну и вычислял .. давненько правда.. а что если уж приперло в батник параметры передавать разучились??!!
Откуда ты параметры решил передавать, если батник запускается, скажем руками?
Конкретное решение давай, а не пустые слова, типа "даром", "да я делал это по молодости" и пр.
И уж совсем только криворукий ламер будет ради 2х строк батника нанимать программера, да еще и "пару пива" ему подгонять... :-`
ЗЫ: при том что в этой ветке уже есть работающий пример решения...
Конкретное решение давай, а не пустые слова, типа "даром", "да я делал это по молодости" и пр.
И уж совсем только криворукий ламер будет ради 2х строк батника нанимать программера, да еще и "пару пива" ему подгонять... :-`
ЗЫ: при том что в этой ветке уже есть работающий пример решения...
Откуда ты параметры решил передавать, если батник запускается, скажем руками?
Конкретное решение давай, а не пустые слова, типа "даром", "да я делал это по молодости" и пр.
И уж совсем только криворукий ламер будет ради 2х строк батника нанимать программера, да еще и "пару пива" ему подгонять... :-`
ЗЫ: при том что в этой ветке уже есть работающий пример решения...
Конкретное решение давай, а не пустые слова, типа "даром", "да я делал это по молодости" и пр.
И уж совсем только криворукий ламер будет ради 2х строк батника нанимать программера, да еще и "пару пива" ему подгонять... :-`
ЗЫ: при том что в этой ветке уже есть работающий пример решения...
Харош мужики ругатся
a
ad80120
ну ладна к примеру пишем прогу на ... да хоть паскале (ой давно не писал)
program time;
uses DOS;
begin
halt(тут формируем из геттайм число DDMMYY); *точно не помню*
end.
компилим
в батнике
.......
time.exe
.. далее значение из ехешника будет в переменной %errorlevel%.... далее наверное понятно... можно вообще менять из си, паскаля, асма любые досовские переменные (да и свои создавать)... не ленитесь почитайте хелп по паскалю, надеюсь работу в bat с переменными знаете?... прошу не указывать на возможные неточности (очень давно этим занимался и уж поверте сделал многое и такой механизм работал)... дело в том что последние года 4 моя работа с программизмом не пересекается.. (разве что JAVA PERL и HTML (если назвать языком) но в свое время написано много и есть даже публикации и прочее...(для тех кто совневается в моей компетентности ;-) )
в хелпе по борланду точно есть изменение дос- переменной, или выход параметра в паскале хелп по dos.obj в си io.h
program time;
uses DOS;
begin
halt(тут формируем из геттайм число DDMMYY); *точно не помню*
end.
компилим
в батнике
.......
time.exe
.. далее значение из ехешника будет в переменной %errorlevel%.... далее наверное понятно... можно вообще менять из си, паскаля, асма любые досовские переменные (да и свои создавать)... не ленитесь почитайте хелп по паскалю, надеюсь работу в bat с переменными знаете?... прошу не указывать на возможные неточности (очень давно этим занимался и уж поверте сделал многое и такой механизм работал)... дело в том что последние года 4 моя работа с программизмом не пересекается.. (разве что JAVA PERL и HTML (если назвать языком) но в свое время написано много и есть даже публикации и прочее...(для тех кто совневается в моей компетентности ;-) )
в хелпе по борланду точно есть изменение дос- переменной, или выход параметра в паскале хелп по dos.obj в си io.h
ыыыыыыыыыыыыыыыыыыыыыыы
Не пойму, когда можно всё сделать в нотепаде, зачем огород городить с паскалем. Думаете, у всех есть паскаль и все знают хотя бы что это такое?
Спрашивается, ежели у нас есть паскаль, то зачем нам батник?
Можно и не передавать ниче, сам паскаль всё сделает в 2х строчках............
Не пойму, когда можно всё сделать в нотепаде, зачем огород городить с паскалем. Думаете, у всех есть паскаль и все знают хотя бы что это такое?
Спрашивается, ежели у нас есть паскаль, то зачем нам батник?
Можно и не передавать ниче, сам паскаль всё сделает в 2х строчках............
a
ad80120
Здравствуйте!
Подскажите, пожалуйста, как из бат-файла можно переименовать другой файл? Нужно сделать следующее:
Подскажите, пожалуйста, как из бат-файла можно переименовать другой файл? Нужно сделать следующее:
Откуда ты параметры решил передавать, если батник запускается, скажем руками?
конечно можно и просто без него... но им нада именно это....
S
Smash
RTFM, товарищи!
cmd вполне хватает
напишите в командной строке
for /f "tokens=1,2,3 delims=." %a in ('date /t') do echo %a%b%c
вопросы должны отпасть.
cmd вполне хватает
напишите в командной строке
for /f "tokens=1,2,3 delims=." %a in ('date /t') do echo %a%b%c
вопросы должны отпасть.
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.
(надо запустить получившийся ехешник с параметром, равным имени файла, который надо переименовать)
Как видим, гимору больше гораздо.
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.
(надо запустить получившийся ехешник с параметром, равным имени файла, который надо переименовать)
Как видим, гимору больше гораздо.
ЗЫ ни vbs ни пост Smash'а не сканают под 9х
Там бы, наверное, если по-простому, пришлось на перле скриптик ваять...
Там бы, наверное, если по-простому, пришлось на перле скриптик ваять...
S
Smash
Accel, разве речь идет о 9х???
Авторизуйтесь, чтобы принять участие в дискуссии.