Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 9

Автор: Free_Soft
Дата сообщения: 26.11.2010 20:29
den1k
файл/папка в реестре не создаются. в реестре создаются значения. REG ADD /? в помошь
Автор: Alukardd
Дата сообщения: 26.11.2010 21:47
Народ подскажите как узнать свои привилегии в системе? Просто получить вывод типа User, Administrator, NT AUTHORITY\SYSTEM или еще что там...
Автор: lorents
Дата сообщения: 26.11.2010 22:29
wolf0425

Цитата:
а в чем баг то?

Честно говоря, я не понимаю, почему это происходит
но код просто удаляет все файлы и все

Код: call :compare "%%~fi" "%%~fi.backup" "%%~fi" "%%~nxi"
Автор: wolf0425
Дата сообщения: 27.11.2010 00:18

Цитата:
по идеи проблема, в том что я удаляю "%%~fi", но у него же есть данные "%%~nxi"

а что там у тебя перед этим по батнику - "%%~fi" "%%~nxi" ссылаются на один и тот же файл, или на одноименные в разных каталогах?
Автор: mcdemon
Дата сообщения: 27.11.2010 03:26
Как сделать так, что-бы бат файл был свернутым при запуске?
Автор: smirnvlad
Дата сообщения: 27.11.2010 06:06
mcdemon
запускать его через start с ключем /min

Добавлено:
lorents

Цитата:

Честно говоря, я не понимаю, почему это происходит
но код просто удаляет все файлы и все


call :compare "%%~fi" "%%~fi.backup" "%%~fi" "%%~nxi"

:compare
REM %1 == %3 == "%%~fi"
REM в случае если размер "%%~fi" меньше "%%~fi.backup"
if %~z1 LSS %~z2 (
REM удаляем %2 и %3
del /F /Q %2
del /F /Q %3
REM %1==%3, который строкой выше удален, и переименовывать в %4 уже нечего и всё удалено
ren %1 %4
)...

надо ren делать до del
Автор: lorents
Дата сообщения: 27.11.2010 07:45
wolf0425

Цитата:
а что там у тебя перед этим по батнику - "%%~fi" "%%~nxi" ссылаются на один и тот же файл, или на одноименные в разных каталогах?

это один и тот же файл.

smirnvlad
сейчас посмотрю, спасибо.

Я вообще сделал так, вроде все работает, как надо.

Код: call :backup "%%~fi" "%%~fi.backup"

:backup
if %~z1 LSS %~z2 (
    del /f /q %2
) else (
    move /y %2 %1
)
exit /b
Автор: anton1209
Дата сообщения: 27.11.2010 21:11
[delete], разобрался сам.
Автор: wolf0425
Дата сообщения: 28.11.2010 13:10
anton1209
Цитата:
как это реализовать? спасибо!
у тебя кавычки при сравнении потерялись.

IF /I "%EP%" == "ON" GOTO roselect
IF /I "%EP%" == "OFF" GOTO irect
Автор: portolomeo
Дата сообщения: 29.11.2010 12:43
здраствуйте многоуважаемый народ!!
помогите пожалуйста с такой незадачей - ip прописан вручную (типа 192.168.1.**), при загрузке компа сетевое соединение говорит - подключено, но пинга нет, и странички соотв не грузятся. приходится по нескольку раз (от одного до 10) разрывать соединение и подключать заново, пока страница не загрузится...
очень хотелось бы закрепить эту процедуру за мини-батником, помогите, пожалуйста.
с программированием не дружу, здесь таких задач не нашел.
ps сетевая карта и кабели все в норме, какой-то свой глюк у компа
Автор: wolf0425
Дата сообщения: 29.11.2010 13:57
строки файла уже отсортированы по алфавиту.
подскажите как прибить дублирующиеся строки (т.е. оставить по одной уникальной) - например через sed, хотя можнои чем-то левым...
Автор: bomzzz
Дата сообщения: 29.11.2010 14:10
батники когда сортируют сами дубли выкидывают вроде

FIND /v "%MYSTRING%" <LIST.TXT > LIST1.TXT

считываешь строчку, без нее пересортируешь весь батник, там дублей не останется
Автор: igor_andreev
Дата сообщения: 29.11.2010 18:35

Цитата:
подскажите как прибить дублирующиеся строки

http://sed.sourceforge.net/sed1line.txt

Там есть "delete duplicate, consecutive lines from a file"(для уже отсортированного файла) и след. пример для "nonconsecutive lines"
Автор: 01MDM
Дата сообщения: 29.11.2010 18:39
wolf0425
Как-то так, если строчки без выкрутасов:

Код:
@echo off
setlocal

cd.>1.tmp
for /f "tokens=*" %%i in (1.txt) do 1>nul findstr "%%i" 1.tmp || 1>>1.tmp echo %%i
move 1.tmp 1.txt
Автор: wolf0425
Дата сообщения: 29.11.2010 19:39
igor_andreev ага, спасибо, после доработки рашпилем получилось

Код: sed -r "$!N; /^(.*)\n\1$/!P; D" <file1.txt >file2.txt
Автор: 01MDM
Дата сообщения: 29.11.2010 20:09
wolf0425

Цитата:
не, батник

Тогда юниксовый sort

Код:
sort -u 1.txt -o 2.txt
Автор: Alukardd
Дата сообщения: 29.11.2010 20:57

Цитата:
Народ подскажите как узнать свои привилегии в системе? Просто получить вывод типа User, Administrator, NT AUTHORITY\SYSTEM или еще что там...
Автор: 01MDM
Дата сообщения: 29.11.2010 21:00
Alukardd

Код:
net user %username%
Автор: Alukardd
Дата сообщения: 29.11.2010 21:14
01MDM
спасибо, а я еще вроде другой вывод видел...
не знаете больше способов? с первым проблем нет, если что нужное вырежу, просто память терзают сомнения о другом способе.

Добавлено:
И хотя я уже получил информацию, которая меня интересовала, но указанный вами способ мне в этом не помог, так что очень хотелось бы услышать другой вариант, для общего развития.
Автор: 01MDM
Дата сообщения: 29.11.2010 22:55
Alukardd

Код:
wmic useraccount get * /value
Автор: Alukardd
Дата сообщения: 30.11.2010 14:45
01MDM
и опять не то) я просто сам не смог найти в поисковиках ответа... поэтому надеялся что кто-нибудь да знает или хотя бы частично помнит как это...

давайте еще раз суть - "надо узнать с какими правами запущена командная оболочка" - наверное я до этого не так выразился вам... извиняюсь...
т.е. если войдя за пользователя запустить cmd.exe через runas, то надо получить в ответ на команду(ту что мне не известна ) права которыми на данный момент имеет запущенная оболочка.
Автор: wolf0425
Дата сообщения: 30.11.2010 16:30
Alukardd твой вопрос про права делится на два - к каким административным группам допуска принадлежит пользователь, от которого запущена программа, и доступны ли ей в данной сессии права администратора.

вторая половина вопроса - от того что в висте и семерке программа, запущенная администратором, вовсе не обязана иметь права администратора, и вычислить свои текущие права - некоторая проблема.

а простая принадлежность NT AUTHORITY\SYSTEM, а также Users, Administrators, Power Users, и прочим группам - замечательно выясняются из %user" и net user %user% /domain ...
Автор: Alukardd
Дата сообщения: 30.11.2010 18:23
wolf0425
нет меня интересует именно права командной оболочки. Не пользователя вошедшего в систему а самой оболочки!
Автор: 01MDM
Дата сообщения: 30.11.2010 19:43
Alukardd
Узнать от чьего имени запущен процесс можно так, на примере calc.exe:

Код:
@echo off
setlocal

set "exec=wmic process where name^="calc.exe" call getowner"

for /f "tokens=1,2 delims==; " %%i in ('%exec% ^| findstr /i "domain user"') do (

    set "%%~i=%%~j"

)
echo %domain%\%user%
Автор: king_stiven
Дата сообщения: 30.11.2010 20:24
wolf0425

Цитата:
подскажите как прибить дублирующиеся строки

sed -n "G; s/\n/&&/; /^\(.*\n\).*\n\1/d; s/\n//; h; P" "%file1%"> "%file%"
Автор: Alukardd
Дата сообщения: 30.11.2010 20:41
01MDM
да тоже вариант, в некотором роде выводит... для моей задачи просто меняется на cmd.exe и получаем какие у нас права.
правда если это надо просто посмотреть и дальше с этой переменной работать не требуется, то проще открыть Process Explorer...

p.s. а вообще я в смятении мб я юзал когда-то команду не встроенную, а так же вызывающую какую-нить прогу?
Автор: Free_Soft
Дата сообщения: 30.11.2010 23:07
операция в цикле

Код: for /f "delims=*" %%a in ('"wmic /namespace:\\root\cimv2 path ... where (ID=...) call activate"')...
Автор: BVV63
Дата сообщения: 01.12.2010 04:58
Free_Soft
Пара встречных вопросов. Может ли операция завершиться успешно? Если да, при ошибке код возврата отличен от нуля? Продолжите строку:

Код: for /f "delims=*" %%a in ('"wmic /namespace:\\root\cimv2 path ... where (ID=...) call activate" & Echo %ErrorLevel%')...
Автор: mouser
Дата сообщения: 01.12.2010 06:16
добрый ...
нужно мониторить процессы на то на сколько сильно они грузят HDD

есть ли какая-то утилитка чтоб смогла вернуть нагрузку HDD по процессам ???
Автор: bomzzz
Дата сообщения: 01.12.2010 06:27
mouser
WMI.


Код: WMIC /?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Windows 7 Starter


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.