|
Нужен cmd/bat для поиска баз 1с на локальных дисках, туплю.. | ☑ | ||
---|---|---|---|---|
0
Bigbro
24.08.16
✎
06:02
|
через wmic logicaldisk where drivetype=3 get deviceid > %myfile%
я получил файлик с локальными дисками но дальше с его обработкой через for /f "skip=1" %%i in (%myfile%) do начинаются проблемы ругается на синтаксис, хотя вроде бы все корректно. более того внутри цикла команда where воспринимает перенаправление в лог ">123.log" как очередной файл для поиска конструкция вида 123.log < where /r c:\ 1cv7.md 1cv8.1cd тоже интерпретируется криво - в окошке вывод типа: 123.log /r c:\ 1cv7.md 1cv8.1cd 0<where то есть все аргументы переносятся вперед. есть у кого то опыт борьбы с батниками? помогите плз.. |
|||
1
VladZ
24.08.16
✎
06:05
|
(0) Чем твоя программа лучше штатного поиска?
|
|||
2
Bigbro
24.08.16
✎
06:13
|
батник можно засунуть на все машины в домене и запустить через политики.
требуется разобраться что за базы на машинах локальные, их много, порядок измеряется тысячами. |
|||
3
VladZ
24.08.16
✎
06:18
|
(2) Тысячи локальных баз? Это какой-то "адский бардак".
|
|||
4
DDwe
24.08.16
✎
06:20
|
(2) А что тебе даст тысяча результатов вроде этого: "D:\Базы\рабочая\1cv8.1cd" ?
|
|||
5
VladZ
24.08.16
✎
06:29
|
(4) Это еще будет большой удачей, если путь к базе будет нести какой-то смысл. Базу могли закинуть куда угодно. И разбирайся потом, что это. Я думаю, проще будет запросить у пользователей список баз, с которыми они работают. Все остальные удалить. При этом нужно убедиться, что резервные копии нужных баз есть в наличии.
|
|||
6
Bigbro
24.08.16
✎
06:31
|
(3) именно, но порядок-то наводить надо.
(4) это будут файлы с именами компьютеров, их можно будет направить в филиалы ответственным людям с указаниями убрать все кроме рабочих баз и сроками исполнения. на самом деле административно это все решается, опыт есть проблем нет. проблема техническая - спотыкаюсь в батниках, грешен лет 15 не ковырялся в них совсем, да и до этого только поверхностно. |
|||
7
DDwe
24.08.16
✎
06:42
|
(6) Так и отправь указание, пусть убирают. А тебе потом отправят список рабочих баз, заодно и бэкапы настроишь.
|
|||
8
DDwe
24.08.16
✎
06:43
|
(7) + В смысле пусть убирают всё не нужное, без твоего поиска. Тебе то зачем список ненужных баз?
|
|||
9
Bigbro
24.08.16
✎
06:47
|
(8) похоже вы никогда не работали в крупной организации со слабой исполнительской дисциплиной.
давая любое поручение исполнителю нужно дать ему максимум информации для исполнения и иметь инструмент контроля. собственно скрипт и призван решить эти 2 задачи. если можно давайте вернемся к технической стороне вопроса.. организационные моменты - неинтересны в данный момент в данной теме, если есть желание можете создать тему отдельно с удовольствием там с вами пообщаюсь. |
|||
10
DDwe
24.08.16
✎
06:51
|
(9) Спасибо, но нет. Обсуждать китайскую пионерию смысла нет.
Флаг в руки. |
|||
11
Bigbro
24.08.16
✎
07:09
|
тут попутно выяснилось, что where не работает на системах ниже чем Windows7 а таких у нас много.
в принципе это не проблема, версию ОС можно определить через переменные окружения %OS% так же как и %computername% даст имя компьютера для формирования имени файла лога. |
|||
12
Mauser
24.08.16
✎
07:52
|
(9) Хех. А что ж тебе не дали максимум информации и инструмент для контроля-то?
Не умеешь на батниках - напиши на 1с. Установи доменной политикой на все машины последнюю версию платформы и поддержкой асинхронным вызовов (это важно!) Напиши обработку, служебку для ее запуска, дождись, пока филиалы отчитаются и удали 1с. Что ж как дети, правда - такая большая фирма, а ничего не умеют. |
|||
13
VladZ
24.08.16
✎
07:54
|
(12) Разворачивать на каждой машине 1С, чтобы найти файлы баз 1С на локальных компах? По-моему, звучит бредово.
|
|||
14
DDwe
24.08.16
✎
07:56
|
(13) Да, не важно же на чем писать, задача поставлена раком.
|
|||
15
Mauser
24.08.16
✎
08:08
|
(13) Каждая задача должна решаться так, как требует постановка!
|
|||
16
Mauser
24.08.16
✎
08:10
|
Я бы еще прослойку на питоне написал, для получения актуальной версии платформы. Да и ТС пригодится - прикинь, надо что то сделать, а на всех машинах домена уже питон есть!
|
|||
17
4St
24.08.16
✎
08:50
|
(0) where /R c:\temp *.epf > c:\temp\123.log
например |
|||
18
ASU_Diamond
24.08.16
✎
08:53
|
(9) крупная организация в которой пользователи работают с локальными базами? насмешил
(0) очередной вирус пишешь? |
|||
19
Fish
24.08.16
✎
08:58
|
(18) Холдинг ларьков? :)
|
|||
20
Bigbro
24.08.16
✎
09:00
|
(17) так не работает внутри цикла for
попутно выяснил что мне не нужен where for /r умеет как раз рекурсивный поиск. но пока проблема с аргументом. echo off set filename=1cv8.1cd for /r "C:\" %%i in (%filename%) do echo %%i>>itog.txt выводит вообще всю структуру папок на диске, вместо поиска. (18) типа того. за который решили наконец то взяться. |
|||
21
ASU_Diamond
24.08.16
✎
09:01
|
при этом пользователи настолько продвинутые, что сами себе поднимают локальные базы. Явно же базы ставили it-ники
|
|||
22
Mauser
24.08.16
✎
09:06
|
(18) Каждый помогающий написать батник будет считаться соучастником =)
|
|||
23
Mauser
24.08.16
✎
09:08
|
А вообще я верю в людей. Скорей всего ТС ищет файлы *.bak, но боится что его засмеют, поэтому придумал эту красивую легенду.
Не переживай, все через это проходили! |
|||
24
DDwe
24.08.16
✎
09:09
|
Точняк вирус )))
Ну найдет он файл сд и чо? Лежит он сам по себе, ни к одной 1с не подцепленный, нужен.. не нужен... темнит автор или что-то замыслил. |
|||
25
ptiz
24.08.16
✎
09:13
|
Логичнее список баз из %APPDATA%\1C\1CEStart\ibases.v8i получать.
|
|||
26
birkoFFFF
24.08.16
✎
09:16
|
Автор пишет батник который найдет файловые базы 1с, зашифрует паролем формируемым на основе IP адреса например, и закинет в корень всех дисков текстовичок ВАЖНО! с описанием куда слать деньги чтобы получить пароль?
|
|||
27
Bigbro
24.08.16
✎
09:26
|
(25) там мы получим то что с высокой степернью вероятности используется.
но не увидим что осталось от предыдущего владельца компьютера - к примеру. эхъ мистапесатели 10 человек и ни одного толкового поста по сабжу. rem echo off set filename=*.1cd *.md SetLocal EnableExtensions EnableDelayedExpansion For /F "Skip=2 Tokens=2 delims=," %%j In ('WMIC LogicalDisk Where Access^^!^=Null Get Name /Value /format:csv') do (for /R ^"%%j^\^" %%i in (%filename%) do echo %%i>>itog.txt) пока пришел к такому - for внутри for должен сделать так как надо но не срабатывает ( |
|||
28
DDwe
24.08.16
✎
09:30
|
(27) Я допускаю, что чего-то не понимаю, но "for внутри for " здесь не наблюдаю.
|
|||
29
ptiz
24.08.16
✎
09:30
|
(27) "что осталось от предыдущего владельца компьютера" - а не пох?
Не используется, значит - не нужно. Задачу полностью бы обрисовал, тогда бы и ответы были те, которые ожидаешь. |
|||
30
DDwe
24.08.16
✎
09:32
|
И что бы уже давно не взять любой скриптовый язык и не мучить батник и мозг.
|
|||
31
Bigbro
24.08.16
✎
09:33
|
(29) задачу обрисовывал же - надо навести порядок, избавиться от всех старых неактуальных баз, в том числе и для исключения утечек информации. те что используются свести в один реестр для последующего переноса на сервера, централизации.
вроде все очевидно. (28) первый фор в первой позиции, второй после do - в конце. |
|||
32
DDwe
24.08.16
✎
09:34
|
(31) Ну так "после", а не "внутри".
|
|||
33
Лефмихалыч
24.08.16
✎
09:38
|
dir /s /b *.1cd
|
|||
34
DDwe
24.08.16
✎
09:41
|
(33) Круто.
|
|||
35
Bigbro
24.08.16
✎
09:44
|
(33) спасибо, внезапно! )
|
|||
36
Мыш
24.08.16
✎
10:24
|
(33) Старая школа )
|
|||
37
Bigbro
24.08.16
✎
12:45
|
если кому вдруг интересно, работает в конечном итоге вот так:
@ECHO DONT CLOSE THIS WINDOW! echo off Setlocal EnableDelayedExpansion set server= rem set server=\\myserver\for1cbaselist\ set myfile=*.1cd set myfile2=*.md set pth= For /F "Tokens=2 Delims==" %%i In ('WMIC LogicalDisk Where DriveType^=3 Get Name /Value') Do ( set pth=%%i DIR /s /b !pth:~0,2!\%myfile% >>%server%%computername%_1c8.log DIR /s /b !pth:~0,2!\%myfile2% >>%server%%computername%_1c7.log ) Лефмихалыч еще раз огромное спасибо! выводит правда довольно много мусора (если установлен Visual studio и некоторые другие), но в качестве рабочего инструмента сойдет. |
|||
38
Мыш
24.08.16
✎
15:33
|
||||
39
trdm
24.08.16
✎
15:45
|
(38) Не везде же пауэршел стоит.
|
|||
40
Мыш
24.08.16
✎
15:48
|
(39) \\remote_computer\c$
|
|||
41
Mauser
24.08.16
✎
15:59
|
(37) Бгг. А если файлы лежат в профиле другого пользователя?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |