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

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

Автор: Pasha_ZZZ
Дата сообщения: 24.01.2016 21:46
MENN
Надо взять линуксовую date, например из GNUWin32. Я так понимаю, вам надо получить время в UTC? Или при любом часовом поясе на компе вычитать 3 часа? Она и то, и другое умеет.
Автор: hErAx
Дата сообщения: 24.01.2016 21:57
если
Цитата:
получить время в UTC
то можно обойтись
WMIC Path Win32_UTCTime Get /all /format:csv
Автор: MENN
Дата сообщения: 25.01.2016 02:31
Спасибо !
Автор: Novich
Дата сообщения: 04.02.2016 14:16
Есть некоторое количество батников, которое делает бекапы, внутри определено что бекапить например
set src1=\\baza\maket\karton.p65
Но дальше для некоторых действий в файле cmd нужно только имя файла.
Как из переменной src1 получить все начиная с после последнего слеша и до конца (т.е. получить karton.p65)?

Ткните пожалуйста, куда копать?
Пути в основном сетевые, но могут быть и локальные типа c:\maket\karton.p65 или русскоязычные с пробелами типа c:\maket\план картона.doc

Спасибо!
Автор: Jon_Dow
Дата сообщения: 04.02.2016 14:21
Novich
при передаче этого пути в качестве параметра через CALL :METKA "%src1%" дальше сможешь получить желаемое через "%~nx1"
Автор: Pasha_ZZZ
Дата сообщения: 04.02.2016 14:21
Novich
Цитата:
set src1=\\baza\maket\karton.p65
call :GetNX "%src1%"
echo %NameExt%
goto :eof

:GetNX
set NameExt=%~nx1
Автор: Jon_Dow
Дата сообщения: 04.02.2016 14:22
И присвоение пиши так:
set "src1=\\baza\maket\karton.p65"
раз уж
Цитата:
но могут быть и локальные типа c:\maket\karton.p65 или русскоязычные с пробелами типа c:\maket\план картона.doc

Автор: Novich
Дата сообщения: 04.02.2016 14:26
Вау, работает, спасибо большое!!!

Добавлено:
Добавочный вопрос, а не через call, напрямую, чтобы в одной строчке это вычислялось, прямо в команде, так можно сделать? Типа winrar.exe %~nx1 "%src1%"
(так не работает)
Через call плохо тем, что источников может быть 10 и 15, и все время разные, и получается, что мне надо отслеживать, чтобы метки :GetNX были разные.
Автор: nik4z
Дата сообщения: 04.02.2016 15:05
Novich


Код: set "src1=\\baza\maket\karton.p65"
for %%a in ("%src1%") do winrar.exe "%%~nxa" "%src1%"
Автор: Novich
Дата сообщения: 04.02.2016 17:46
Спасибо огромное!
Автор: YuS_2
Дата сообщения: 10.02.2016 14:23
wolf0425

Цитата:
можно ли как-то с коммандной строки узнать список файлов,
которые у сервера в данный момент кем-то открыты через сетевые шары?

net file - не подходит?
Автор: wolf0425
Дата сообщения: 10.02.2016 17:08

Цитата:
net file - не подходит?
хз, какой-то там вовсе куцый и непонятный хэлп.
я в нем указания имени сервера и пути не вижу вообще.
Пример его практического использования можно?

есть файлы в подкаталоге сетевой шары, \\server1\share2\subdir3\*
хочу получить список какие их этих файлов в данный момент открыты и кем.
AD, права админские есть, посмотреть это через гуевую оснастку могу, но там нет поиска/фильтров и напряжно искать в той простыне информацию о актуальном участке расшаренного...
Автор: nik4z
Дата сообщения: 10.02.2016 17:15
wolf0425
А PsFile не подойдет?
Автор: wolf0425
Дата сообщения: 10.02.2016 17:30

Цитата:
А PsFile не подойдет?
хм. спасибо, что-то похожее, буду думать.
Ещё бы кто научил как подружить её с русскими буковками в путях...
Автор: YuS_2
Дата сообщения: 10.02.2016 18:42
wolf0425

Цитата:
я в нем указания имени сервера и пути не вижу вообще.
Пример его практического использования можно?

Ну, уже, видимо, понятно, что использование этого средства не предназначено для удаленного доступа...
В вопросе этого и не было...
Тогда возможно подойдет вот это:
openfile /query /?

или это:
winrs -r:<Servername> openfiles
Автор: wolf0425
Дата сообщения: 11.02.2016 10:43

Цитата:
Ну, уже, видимо, понятно, что использование этого средства не предназначено для удаленного доступа...
В вопросе этого и не было...
удаленный доступ или нет - пофиг, есть же psexec если припрет.
Другой вопрос что net file вообще ничего не знает об именах файлов.


Цитата:
Тогда возможно подойдет вот это:
openfile /query /?
ксати, а это чудо где-то можно взять отдельно под win7 и s2003?


Цитата:
или это:
winrs -r:<Servername> openfiles
долго тупит, потом ругается что не удалось успеть закончить....

Автор: YuS_2
Дата сообщения: 11.02.2016 11:58
wolf0425

Цитата:
ксати, а это чудо где-то можно взять отдельно под win7 и s2003?

Что значит "взять отдельно"?
В любом случае, тут можно поискать то, что требуется...
Автор: Jon_Dow
Дата сообщения: 11.02.2016 12:29
wolf0425
поищи лучше тут C:\Windows\System32\openfiles.exe
Оно как-то с добавочной буквой проще ищется...
Автор: Rushmore
Дата сообщения: 11.02.2016 17:58
wolf0425
Не openfile, а OPENFILES!

OPENFILES /Query /?
OPENFILES /Query /S system /U username /P password

Утилита имеется в венде начиная с Win2003
Автор: YuS_2
Дата сообщения: 12.02.2016 00:10
Rushmore

Цитата:
Не openfile, а OPENFILES!

это я опечатался изначально, но wolf0425 не новичок в cmd, разберется что к чему... видимо, просто гуглить документацию лень ему.
Автор: Nella
Дата сообщения: 26.02.2016 21:27
Собственно вопрос - как заставить отрабатывать bat с правами администратора при каждом запуске системы? Планировщик заданий (встроенный в 8.1) вопроса не решает. Файл запускает, но без прав администратора несмотря на галочку "выполнять с максимальными правами".
Пояснение - на системе не стартует спулер печати после перезагрузки. Если пнуть вручную из Services.msc или из командной строки с правами администратора net start spooler - запускается и работает, но после перезагрузки системы снова не поднимается автоматически. Написала bat...
Автор: 5peciali5t
Дата сообщения: 27.02.2016 00:37
Nella
попробуйте в начало батника прописать

Код:
:ADMIN
openfiles >nul 2>nul ||(
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs" >nul 2>&1
goto:eof
)
del /f /q "%temp%\getadmin.vbs" >nul 2>nul
pushd "%~dp0"
далее ваш код
Автор: YuS_2
Дата сообщения: 27.02.2016 05:00
Nella
Вот здесь есть полезная инфа, возможно пригодится.
Автор: Sphinx114
Дата сообщения: 27.02.2016 15:22
Nella, я бы попробовал запустить батник от имени учётной записи "Администратор" или "NT AUTHORITY\SYSTEM" или "система". Также можно попробовать запихать батник в gpedit.msc > Конф. комп. > Сценарии > Автозагрузка
Автор: Nella
Дата сообщения: 29.02.2016 09:01

Цитата:
я бы попробовал запустить батник от имени учётной записи "Администратор" или "NT AUTHORITY\SYSTEM" или "система".
Я тоже пробовала ))) Не помогает )))

Цитата:
можно попробовать запихать батник в gpedit.msc > Конф. комп. > Сценарии > Автозагрузка
Интересная мысль - попробую спасибо

Автор: Joo1z
Дата сообщения: 29.02.2016 09:24
Nella

Код: psexec -s
Автор: Norhard
Дата сообщения: 29.02.2016 22:08
Всем добре.
Прошу помощи: как создать bat-ник, выполняющий задание только в один день? Т.е. берется системная дата/время, сравнивается с предустановленной в бат файле и если отличается на день, то сразу "exit /B". Иначе - задание выполняется.
Автор: ipmanyak
Дата сообщения: 01.03.2016 07:26
Norhard Что значит дата предустановлена в bat файле?
Не проще сделать задание в планировщике и выполнять в нужные дни без сравнения дат?
в батнике дату в переменную можно получить так:
set datetemp=%date:~-10%
или так, если нужен свой формат:
@echo off
for /F "tokens=1-4 usebackq delims=. " %%1 in (`date /t`) do set mydate=%%4.%%3.%%2
или так
set yyyy=%date:~6,4%
set mm=%date:~3,2%
set dd=%date:~0,2%

P.S.
Лучше бы озвучил назначение самого батника-задания.

Автор: Norhard
Дата сообщения: 01.03.2016 10:38
ipmanyak
В общем, батник должен выполнять любое прописанное в нем задание всего один календарный день в жизни и должна быть возможность менять эту дату по своему усмотрению прямо в батнике.
Автор: ipmanyak
Дата сообщения: 01.03.2016 11:29
Norhard Читать файл в батнике уже непростая задача, хотя и решаемая. А читать данные из запущенного батника это вообще не знаю , реализуемо ли. Лучше дату хранить в другом файле. Подход к задаче не совсем корректный.

Читать из файла
FOR /F "delims== tokens=1,2" %%I IN (test.ini) DO SET %%I=%%J
echo %SoftInfo%

Замена текста в файле (sbs2.com) [?] - подрихтуешь как надо
http://forum.ru-board.com/topic.cgi?forum=2&topic=2922&start=16&limit=1

Страницы: 123456789101112131415161718

Предыдущая тема: Не устанавливаются обои на рабочий стол (Windows 2003 x64)


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