Хранение информации о нахождении базы в таблице.

Автор adi_den2013, 11 февраля 2014, 10:55

0 Пользователи и 1 гость просматривают эту тему.

JohnSUN

Могу ошибаться (хоть и очень стараюсь этого не делать), но твоя задача, оказывается, решается в пол пинка.
Не уверен, что shell("ARC.BAT",1) не поймёт, что батник нужно искать в текущем каталоге. Но даже если прикинется бараном, мы ему этот каталог можем присобачить через обычный плюс
shell(curPath+"ARC.BAT",1)
А текущий путь внутри батника будешь получать через тот же SET put1=, но запишешь его чуть-чуть сложнее:
for /f %%i in ("%0") do set put1=%%~dpi
А с \arc\ можно даже не заморачиваться - просто дописывать его живьём к получившемуся %put1%
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

adi_den2013

#16
Стесняюсь спросить ~dpi - это что?  :-[  
Переменная, которая передается в батник?   У меня вроде такой не было....
Яна (in real)

JohnSUN

Не стесняйся, я тоже не знаю... не знал... когда-то...  :roll:
Это "маска": d=disk=диск, p=path=путь, i=удалить обрамляющие кавычки.
Оператор for выдернет из значения в скобках полный путь и имя нашего bat'ника, а маска формата через тильду - вырежет из этого значения то, что попросили...
Подробности смотри в FOR /? из Командной строки
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

adi_den2013

Ух, ты ж  :)! Спасибо. Я правда не знала.

Пошла читать про FOR.
Яна (in real)

adi_den2013

Переделала батник
rem дата в имени архива ДДММГГ
set name1=%DATE:~0,2%%DATE:~3,2%%DATE:~8,2%

rem вычисление времени (до 10:00 и после)
IF "%time:~0,1%" LSS "1" (
  set name2="0"%TIME:~1,1%%TIME:~3,2%
) ELSE (
  set name2=%TIME:~0,2%%TIME:~3,2%
)

rem путь нахождения базы
for /f %%i in ("%0") do set put1=%%~dpi

rem создать папку месяца
md  %put1%arc\%DATE:~3,2%

rem создать папку дня
md  %put1%arc\%DATE:~3,2%\%DATE:~0,2%%DATE:~3,2%

arj.exe a -e %put1%arc\%DATE:~3,2%\%DATE:~0,2%%DATE:~3,2%\arc_%name1%_%name2%.arj %put1%balans.odb
rem pause


и макрос
Sub Archiv()                        
Dim oParent As Variant
Dim sURL As String
   GlobalScope.BasicLibraries.LoadLibrary("Tools")
   oParent = ThisComponent.getParent()
   sURL = oParent.getURL()                                                    
   command_arc=DirectoryNameoutofPath(ConvertFromURL(sURL), "\")+"\arc.bat"  
shell(command_arc,1)
End Sub


Все чётко работает  :D

Спасибо за наводку на FOR еще раз  :beer:
Яна (in real)

JohnSUN

А первый и третий параметры в
name1=%DATE:~0,2%%DATE:~3,2%%DATE:~8,2%
менять не захотела?

Чес-слово, вариант
name1=%DATE:~8,2%%DATE:~3,2%%DATE:~0,2%
мне как-то больше по душе
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

adi_den2013

А чего? Оч нормально сортируется - по времени  ;)

[вложение удалено Администратором]
Яна (in real)

JohnSUN

Ага... До тех пор пока всю папку на флэшку не скинешь... и Дата изменения (и, блин, создания!) станет одинаковой для всех
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

adi_den2013

#23
Что-то я, наверное, неправильно поясняю  :-[

arc_120214_1028.arj, где 120214 - дата 12/02/2014, 1028 - время создания архива 10ч 28мин

Почему оно должно поменяться при копировании на флешку? Это имя файла. Атрибуты поменяются, но не имя.
Яна (in real)

JohnSUN

Я не про имя файла, я про дату изменения файла, на твоем скриншоте третья колонка Изменено.
Сейчас-то у тебя все файлы за 12 февраля и всё прекрасно. Как по-твоему будут отсортированы файлы с именами
arc_120214_2085.arj
arc_190214_1979.arj
arc_260214_1946.arj
arc_050314_1586.arj
arc_120314_1817.arj
arc_190314_2118.arj
arc_260314_2162.arj
arc_020414_1654.arj

Я тебе скажу - каша получится. Вот такая:
arc_020414_1654.arj
arc_050314_1586.arj
arc_120214_2085.arj
arc_120314_1817.arj
arc_190214_1979.arj
arc_190314_2118.arj
arc_260214_1946.arj
arc_260314_2162.arj
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

adi_den2013

#25
Обрати внимание на зелененькую шапку на скриншоте. Там не только месяц, но и день ;)

[вложение удалено Администратором]
Яна (in real)

JohnSUN

А подчищать старьё - грохать целыми папками? Ну, тогда да, тогда конечно... Я просто в последние пару лет с папками не заморачиваюсь - все в одну директорию кидаю. Потом по имени отсортировал, от сих до сих с шифтом пометил и Shif+Delete
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

adi_den2013

Все равно эти архивы кроме меня никому не нужны. Люди даже слова такого страшного не знают - "архив".

Есть у человека распечатанный на бумаге отчет и он счастлив. А все остальное "ваши извращения"  >:(
Яна (in real)