BigBro
Новый пользователь
- Сообщения
- 4
- Реакции
- 3
Есть задача, нужно сделать батник, который проведет поиск файлов по всем локальным дискам, сложит найденное в лог-файл с именем компьютера и скопирует этот лог на общий ресурс...
вроде ничего сложного, но я уже 2 сутки марширую по граблям )
пока дошел до такой конструкции:
ругается на синтаксис команды for
когда копировал существующие примеры циклов - ругани не было, но спотыкался на where, перенаправление в лог фал воспринимает как очередной файл для поиска.
изменение типа
123.log < where /r %a:~0,1%:\ 1cv7.md 1cv8.1cd
тоже не приводят к ожидаемому результату - все аргументы переставляются впереди команды where.
if notX%%i==X do
эта конструкция чтобы отсечь последнюю пустую строку, которая выводится иногда в списке дисков.
skip нужен чтобы пропустить первую строку "DeviceID"
%a:~0,1% это чтобы отрезать первую букву, я ее потом в имени лога хотел использовать, и избавиться от : и пробелов следом за буквой диска...
Прошу помощи!
вроде ничего сложного, но я уже 2 сутки марширую по граблям )
пока дошел до такой конструкции:
CMD/BATCH:
set myfile=drives.log
wmic logicaldisk where drivetype=3 get deviceid > %myfile%
for /f "skip=1" %%i in (%myfile%) do
(if notX%%i==X do
( SET a=%%i
(where /r %a:~0,1%:\ 1cv7.md 1cv8.1cd) >123.log
)
)
xcopy 123.log c:\temp\ /y
когда копировал существующие примеры циклов - ругани не было, но спотыкался на where, перенаправление в лог фал воспринимает как очередной файл для поиска.
изменение типа
123.log < where /r %a:~0,1%:\ 1cv7.md 1cv8.1cd
тоже не приводят к ожидаемому результату - все аргументы переставляются впереди команды where.
if notX%%i==X do
эта конструкция чтобы отсечь последнюю пустую строку, которая выводится иногда в списке дисков.
skip нужен чтобы пропустить первую строку "DeviceID"
%a:~0,1% это чтобы отрезать первую букву, я ее потом в имени лога хотел использовать, и избавиться от : и пробелов следом за буквой диска...
Прошу помощи!
Последнее редактирование модератором: