спасибо. помогло
» Задачи на bat-файлах 3
Имеется путь, например E:\split\ fgh\fgjkl\ как подсчитать на сколько каталогов ты дапеко от корня диска без goto ? Желательно попроще. В путях встречаются любые знаки, с goto не получается. так как он идёт после нескольких
for %%i in ( ) do (
for %%e in ( ) do (
goto
...
for %%i in ( ) do (
for %%e in ( ) do (
goto
...
king_stiven
Цитата:
Кто же знает, что для тебя "попроще"
Можно так:
Код:
for %%i in ( ) do (
for %%e in ( ) do (
set "counter=-1"
set "p=E:\split\&!<>fgh\fgjkl\"
call :count
echo %counter%
..
))
goto :EOF
:count
if "%p%"=="" goto :EOF
if "%p:~0,1%"=="\" set /a "counter+=1"
set "p=%p:~1%"
goto count
Цитата:
Желательно попроще
Кто же знает, что для тебя "попроще"
Можно так:
Код:
for %%i in ( ) do (
for %%e in ( ) do (
set "counter=-1"
set "p=E:\split\&!<>fgh\fgjkl\"
call :count
echo %counter%
..
))
goto :EOF
:count
if "%p%"=="" goto :EOF
if "%p:~0,1%"=="\" set /a "counter+=1"
set "p=%p:~1%"
goto count
Люди подскажите.
Задача следующая - надо замутить скрипт что бы все пользователи кторые забыли закрыть терминал были выкинуты например вечером по рассписанию (это я смогу - с рассписанием)
Коткретно надо убивать процесс 1С - но это уже лудше держать планом б.
Заранее спасибо.
Задача следующая - надо замутить скрипт что бы все пользователи кторые забыли закрыть терминал были выкинуты например вечером по рассписанию (это я смогу - с рассписанием)
Коткретно надо убивать процесс 1С - но это уже лудше держать планом б.
Заранее спасибо.
NskRonin
Код:
taskkill /f /im process.exe
Код:
taskkill /f /im process.exe
Maza Faka
Спасибо большое.
Но нельзя всеже сделать скрипт завершения (сброса) терминальных пользователей?
Спасибо большое.
Но нельзя всеже сделать скрипт завершения (сброса) терминальных пользователей?
NskRonin
Цитата:
А это уже в настройки терминала - там есть это
Цитата:
Но нельзя всеже сделать скрипт завершения (сброса) терминальных пользователей
А это уже в настройки терминала - там есть это
KapralBel
Спасибо. Наверно я совсем уже не умный стал... Хотя вчера вроде много не пили )
Спасибо. Наверно я совсем уже не умный стал... Хотя вчера вроде много не пили )
king_stiven
Цитата:
Так сойдёт?
Код:
@echo off
set count=0
set "myPath=C:\split\fgh\fgjkl\"
:begin
for /f "tokens=1* delims=\" %%a in ('echo %myPath%') do (
set myPath=%%b
set var=%%a
if defined myPath (
set /a count+=1
goto begin)
)
echo Stek = %count%
Цитата:
подсчитать на сколько каталогов ты дапеко от корня
Так сойдёт?
Код:
@echo off
set count=0
set "myPath=C:\split\fgh\fgjkl\"
:begin
for /f "tokens=1* delims=\" %%a in ('echo %myPath%') do (
set myPath=%%b
set var=%%a
if defined myPath (
set /a count+=1
goto begin)
)
echo Stek = %count%
Цитата:
Maza Faka
Цитата:
Elroir
Решил так
Код: for %%b in ( ) do (
for %%c in ( ) do (
call :begin "C:\split\fgh\fgjkl\"
:begin
cd /d %1
set /a count+=1
if /i "%~d1\" neq "%cd%" (
cd ..
goto begin
)
Цитата:
Коткретно надо убивать процесс 1С
Помоему если убить 1с будут сбои, надо её аккуратно закрывать.
dardreams
Если этот процес висит уже часов 5 - причем в отключеном пользователе - то, по моему, максимум что случиться не сохраняться данные.
Если этот процес висит уже часов 5 - причем в отключеном пользователе - то, по моему, максимум что случиться не сохраняться данные.
А если конкретнее что лучше просто сделать
Код: logoff
Код: logoff
dardreams
Если база DBF 7.7 - то худшее - это переиндексация, которую можно выполнить автоматом из батника тут же ночью
В остальных случаях - проблем не будет
А тот кто не сохранил данные тот сам себе злобный буратино
Если база DBF 7.7 - то худшее - это переиндексация, которую можно выполнить автоматом из батника тут же ночью
В остальных случаях - проблем не будет
А тот кто не сохранил данные тот сам себе злобный буратино
Пример батника выводящего кто и что читает на моем компьютере.
chcp 1251
for /F "usebackq tokens=1,2,3,4,5,6,7 delims= " %%A IN (`"net file | find ":" | find ".""`) DO call :session %%A %%B %%C %%D %%E %%F %%G
:session
set file=%2
set user_file=%3
echo %user_file% %file% >>1.txt
Батник работает нормально, если в именах файлов (или путей) нет пробелов, нет русских букв “а” и т.п.
Конечно можно извратится типа если %4 не равно 0, то проверить равно ли %5 0 и т.д.. и устаналивать например set file=%2%3%4%, set user_file=%5 и т.п.
Но может фишка в чем-то другом? Т.е. можно ли сделать, чтоб батник оставался таким же коротким?
chcp 1251
for /F "usebackq tokens=1,2,3,4,5,6,7 delims= " %%A IN (`"net file | find ":" | find ".""`) DO call :session %%A %%B %%C %%D %%E %%F %%G
:session
set file=%2
set user_file=%3
echo %user_file% %file% >>1.txt
Батник работает нормально, если в именах файлов (или путей) нет пробелов, нет русских букв “а” и т.п.
Конечно можно извратится типа если %4 не равно 0, то проверить равно ли %5 0 и т.д.. и устаналивать например set file=%2%3%4%, set user_file=%5 и т.п.
Но может фишка в чем-то другом? Т.е. можно ли сделать, чтоб батник оставался таким же коротким?
Код:
for /f %a in ('systeminfo ^|find "System Up Time"') do message %a
dardreams
Цитата:
Добавлено:
Цитата:
Никак, cmd посчитает их за начало переменной.
Цитата:
for /f "delims=" %a in ('systeminfo ^|find "System Up Time"') do message %a
Добавлено:
Цитата:
Но если в имени "C:\split\fgh%\fgjkl%\" есть %, как правильно передать "C:\split\fgh%\fgjkl%\" на :begin?
Никак, cmd посчитает их за начало переменной.
Вот так заработало
Код: for %%i in ( ) do (
for %%e in ( ) do (
set "counter=-1"
set "p=E:\split\&!<>fgh\fgjkl\"
call :count
..
))
goto :EOF
:count
cd /d "%p%"
for %%c in ("%p%") do set letter=%%~dc\
:begin
set /a sum+=1
if /i "%letter%" neq "%cd%" (
cd ..
goto begin
)
Код: for %%i in ( ) do (
for %%e in ( ) do (
set "counter=-1"
set "p=E:\split\&!<>fgh\fgjkl\"
call :count
..
))
goto :EOF
:count
cd /d "%p%"
for %%c in ("%p%") do set letter=%%~dc\
:begin
set /a sum+=1
if /i "%letter%" neq "%cd%" (
cd ..
goto begin
)
Возможно ли просто запустить службу через консоль, если у нее стоит DISABLED
dardreams
См. возможности утилиты sc.exe
там есть управление статусом загрузки
См. возможности утилиты sc.exe
там есть управление статусом загрузки
Службу я имел ввиду сервис обычно messenger отключен по умолчанию, вот хотелось бы не лазить в services.msc а сделать через консоль
01MDM
зделал такой БАТ:
Код: @ECHO OFF
sleep -t 10
for /f "tokens=9 delims== " %%i in ('ping google.de ^| find "TTL"') do (
set PingGood=%%i
)
if %PingGood%==TTL (
goto TimeUpdate
) else (
GOTO:EOF
)
:TimeUpdate
net time /setsntp:"ntp2.cs.wisc.edu ntp1.cs.wisc.edu"
w32tm /resync
зделал такой БАТ:
Код: @ECHO OFF
sleep -t 10
for /f "tokens=9 delims== " %%i in ('ping google.de ^| find "TTL"') do (
set PingGood=%%i
)
if %PingGood%==TTL (
goto TimeUpdate
) else (
GOTO:EOF
)
:TimeUpdate
net time /setsntp:"ntp2.cs.wisc.edu ntp1.cs.wisc.edu"
w32tm /resync
Цитата:
См. возможности утилиты sc.exe
Незнал про такую, спасибо. только вот то что я хотел я там не нашел, там есть запуск, установка, приотсановка, а страт тип там не было
dardreams
Код:
sc config messenger start= demand
Net start messenger
....
net stop messenger
sc config messenger start= disabled
Код:
sc config messenger start= demand
Net start messenger
....
net stop messenger
sc config messenger start= disabled
KapralBel
Спасибо, я нашел но она у меня из пробела не работала этого
Цитата:
спасибо. еще раз !!!
Добавлено:
А есть чтонибудь чтобы можно было запуск приложения на удаленом компе, что то вроде psexec только стандартное ?
Спасибо, я нашел но она у меня из пробела не работала этого
Цитата:
sc config messenger start=_demand
спасибо. еще раз !!!
Добавлено:
А есть чтонибудь чтобы можно было запуск приложения на удаленом компе, что то вроде psexec только стандартное ?
Всем доброго времени суток.
Хочу средствами cmd реализовать следуюшее: в директории есть файлы с определенным расширением, нужно вывести на консоль список этих файлов в виде "номер файла: имя файла" и при вводе номера нужного файла передать этот файл параметром нужной программе. Файлы вывел, ввод нужного работает, но теперь не могу понять как по введенному номеру определить нужный файл. В языках более высокого уровня это решилось бы простенькой конструкцией case, но как средствами cmd?
Код: @echo off
setlocal enabledelayedexpansion
set count=0
for /f "tokens=1 delims=." %%i in ('dir /a:-d /b *.mst') do (
set /a count+=1
echo !count!^: %%i
)
set /p choice=": "
Хочу средствами cmd реализовать следуюшее: в директории есть файлы с определенным расширением, нужно вывести на консоль список этих файлов в виде "номер файла: имя файла" и при вводе номера нужного файла передать этот файл параметром нужной программе. Файлы вывел, ввод нужного работает, но теперь не могу понять как по введенному номеру определить нужный файл. В языках более высокого уровня это решилось бы простенькой конструкцией case, но как средствами cmd?
Код: @echo off
setlocal enabledelayedexpansion
set count=0
for /f "tokens=1 delims=." %%i in ('dir /a:-d /b *.mst') do (
set /a count+=1
echo !count!^: %%i
)
set /p choice=": "
dardreams
Цитата:
Есть
Код: sc \\Srv1 config messenger start= demand
Цитата:
А есть чтонибудь чтобы можно было запуск приложения на удаленом компе, что то вроде psexec только стандартное
Есть
Код: sc \\Srv1 config messenger start= demand
SPV_Ed
Цитата:
тынц
Цитата:
Хочу средствами cmd реализовать следуюшее: в директории есть файлы с определенным расширением, нужно вывести на консоль список этих файлов в виде "номер файла: имя файла" и при вводе номера нужного файла передать этот файл параметром нужной программе.
тынц
dominiksus
Код:
@ECHO OFF
sleep -t 10
ping google.com >nul
if %errorlevel%==1 (goto:eof) else (w32tm /resync)
Код:
@ECHO OFF
sleep -t 10
ping google.com >nul
if %errorlevel%==1 (goto:eof) else (w32tm /resync)
А в XP можно поменять обои из командной строки?
В смысле - встроенными средствами, не привлекая какой-нибудь IrfanView?
В смысле - встроенными средствами, не привлекая какой-нибудь IrfanView?
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
Предыдущая тема: Автозагрузка терминальной сессии
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.