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

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

Автор: VedunO
Дата сообщения: 04.02.2008 17:00
Подскажите, можно ли как-то узнать дату предыдущего рабочего дня?
Автор: king_stiven
Дата сообщения: 04.02.2008 17:13
VedunO
в "шапке"
Цитата:
Работа с текстом, датой, и файлами »

?
Автор: 01MDM
Дата сообщения: 04.02.2008 17:15
VedunO
А по какому принципу определять предыдущий рабочий день? Может быть вчера, может и после новогодних праздников. Найти предыдущий "черный" день в календаре? Это осуществимо, но это большой по объему код.
Автор: Wise_Kaa
Дата сообщения: 04.02.2008 17:52
01MDM
А что значат
Цитата:
||
? и как быть, если надо при ненахождении в файле report.txt строки с именем файла еще действия определенные провести.
Автор: 01MDM
Дата сообщения: 04.02.2008 18:01
Wise_Kaa


Цитата:
и как быть, если надо при ненахождении в файле report.txt строки с именем файла еще действия определенные провести.



Код:
@echo off
for %%f in (*.*) do (
find "%%f" report.txt 1>nul || (
выполняем действия если в report.txt нет файла %%f
)
)
Автор: Wise_Kaa
Дата сообщения: 04.02.2008 18:18
01MDM
Большое-большое спасибо!
А еще вопросик можно? Как назначить значению переменной размер указанного файла?
set temp=~zo что-то типа этого?
Автор: Polizzay
Дата сообщения: 04.02.2008 21:05
Помогите, плиз.
Стоит задача - запустить прогу из командной строки с определенными параметрами запуска, а потом тупо ее закрыть.
Точнее задача состоит в следующем - программа сетевая, нужно удалить один из файлов, но при работе сетевых пользователей он блокируется. Определенные параметры это и есть закрытие сетевых сессий
Автор: cluster
Дата сообщения: 04.02.2008 21:46
Подскажите, как снять галку наследования разрешений NTFS с помощью коммандной строки?
Автор: 01MDM
Дата сообщения: 04.02.2008 23:10
Если перезаписать права, то галка наследования пропадает
cacls c:\test /t /g user:f
Автор: Sk09
Дата сообщения: 05.02.2008 09:07
Народ - может кто то поможет ?
Сразу извиняюсь если ошибся темой.
Вобщем вопрос такой - нужен сценарий или что то подобное или просто посоветуйте прогу - сам просто ничего вообще ненашел
Смысл в следующем: надо чтобы при вставке диска в привод он тупо копировался на винт в папку, создавая в этой папке подпапку к примеру "дата_время" куда клал свое содержимое. Очень желательно что бы этот процесс был не виден полностью (кроме как мигание лампочке на приводе) или хотябы как то так, чтобы обычный юзер этого не понял. И еще чтобы блокировался латок привода во время копирования если конечно возможно это.
Если кто может - помогите - очень надо....
Если ишибся темой или кто знает что то подобное - ткните носом..
Зарание огромнейшее спасибо
Автор: 01MDM
Дата сообщения: 05.02.2008 09:37
Wise_Kaa

Код:
for %%i in (*.*) do set size=%%~zi
Автор: king_stiven
Дата сообщения: 05.02.2008 10:14
Sk09
Придётся все равно после вставки диска запускать батник, как скрытно запустить поищи в шапке, будет что то типа
xcopy "E:\" c:\%date% /s /e /h /r /i
Автор: GORA2
Дата сообщения: 05.02.2008 11:24
Нужно запустить .cmd файл с параметрами из командной строки, но что б окно консоли было максимизированно. Делаю так:

Код: cmd /c Start /wait /max test.cmd YY 1st
Автор: 01MDM
Дата сообщения: 05.02.2008 11:50
GORA2
В начале батника пропиши

Код:
mode con lines=n cols=m
:: где n - кол-во строк, m=кол-во символов в строке
Автор: VedunO
Дата сообщения: 05.02.2008 13:07
01MDM

Цитата:
А по какому принципу определять предыдущий рабочий день? Может быть вчера, может и после новогодних праздников. Найти предыдущий "черный" день в календаре? Это осуществимо, но это большой по объему код.


ну да, хотелось бы конечно так
Автор: GORA2
Дата сообщения: 05.02.2008 13:37

Цитата:
Или так
Код:
start /wait /max cmd /c "mode con lines=40 cols=120 && test.cmd"

Мне нужен запуск test.cmd не из батника, а из командной строки которая прописана в ini файле другой программы! А start можно запустить только из батника. Меня интересует корректна ли вообще моя строка и можно ли как то обойтись без cmd /c ?
Автор: 01MDM
Дата сообщения: 05.02.2008 14:39
GORA2
Тогда только обозначить размеры в самом батнике и все равно запускать:

Код:
:: Если в %path%
cmd /c "start /max test.cmd"

:: Если нет
cmd /c "cd ^"C:\Path To\с пробелами^" && start /max test.cmd"

Автор: Lovec
Дата сообщения: 05.02.2008 17:02
Как определить версию винды в батнике, типа 9x или NT?
Пробовал такой код:


Код: if c:\%os%==c:\ goto win9x
if not c:\%os%==c:\ goto winnt

:winnt
.................
Автор: Sk09
Дата сообщения: 05.02.2008 17:38

Цитата:
Sk09
Придётся все равно после вставки диска запускать батник, как скрытно запустить поищи в шапке, будет что то типа
xcopy "E:\" c:\%date% /s /e /h /r /i


Спасибо огромное, но может кто нибудь подскажет поподробнее, а то я сам в этом совсем не смыслю.......

А насчет придеться запускать - нельзя например зациклить и вставить в автозапуск например чтоб каждые 30 секунд например проверяла привод ?
Автор: king_stiven
Дата сообщения: 05.02.2008 20:46
Sk09

Код: Title y
"E:\split\cmdow" "y" /HID
:begin
ping -n 16 -w 1000 localhost > nul
for /f "tokens=*" %%c in ('dir k:\ /b') do (
for /f "tokens=1,2* delims=:" %%e in ("%time%") do (
xcopy k:\ "c:\34\%date%_%%e.%%f.%%g" /s /e /h /r /i
goto :eof
)
)
goto :begin
Автор: Sk09
Дата сообщения: 06.02.2008 07:33
king_stiven
Спасибо огромное
Попробую дома вечерком - если возникнут вопросы - напишу.

Добавлено
Скачал сейчас cmdow, в анотации написано Cmdow v1.4.3 for Windows NT4/2000/XP, а он пойдет под windows server 2003 c sp2 ? а то проверять как то немного боязно, всетаки рабочий сервак - за него на части порвут.....
Автор: king_stiven
Дата сообщения: 06.02.2008 08:25
Sk09

Цитата:
Скачал сейчас cmdow, в анотации написано Cmdow v1.4.3 for Windows NT4/2000/XP, а он пойдет под windows server 2003 c sp2 ?

не знаю, вопрос к гуру
добавь ещё в начало батника:
@echo off
chcp 1251 > nul
Автор: Sk09
Дата сообщения: 06.02.2008 10:02
king_stiven
Спасибо - попробовал на рабочем компе с XP - работает отлично - но хотелось немного можно доработать в части: чтобы после копирования сценарий не выключался, а например включалась пауза 10 - 20 минут, а потом проверка продолжалась и так по кругу.
Запустить то раз не трудно - вопрос в том, что уезжаю на сессию и 3 недели меня не будет.....
Автор: ipmanyak
Дата сообщения: 06.02.2008 10:25
Sk09 Дык делай цикл , кто тебе мешает? Ждать 20 сек - утилита sleep из рескит, или ping 127.0.0.1 -n 20
Впрочем отдельно sleep можешь взять здесь: http://www.windowsfaq.ru/images/stories/files/sleep.exe

:test
....
sleep 20
или
ping 127.0.0.1 -n 20
goto test
:go

Автор: king_stiven
Дата сообщения: 06.02.2008 10:27
Sk09

Код: @echo off
chcp 1251 > nul
Title y
"E:\split\cmdow" "y" /HID
:begin
ping -n 16 -w 1000 localhost > nul
for /f "tokens=*" %%c in ('dir k:\ /b') do (
for /f "tokens=1,2* delims=:" %%e in ("%time%") do (
xcopy k:\ "c:\34\%date%_%%e.%%f.%%g" /s /e /h /r /i
ping -n 640 -w 1000 localhost > nul
goto :begin
)
)
goto :begin
Автор: Sk09
Дата сообщения: 06.02.2008 12:22
king_stiven,ipmanyak
Спасибо огромное - погонял на работе с дисководом - все отлично работает.
Попробую еще дома вечерком с CDромом и завтра уже на комп повешу...
Автор: ferapontov
Дата сообщения: 06.02.2008 13:43
Всем привет!
У меня такой вопрос: мне каждый день надо грузить файлы за вчерашний день,которые находятся в папках : \\server\YYYY\MM\YSTD ,где YYYY -текущий год,MM -месяц,YSTD -вчерашнее число.
Я нашел команду for /f "tokens=1,2,3,4* delims=. " %%i in ('date /t') do set TDDAY=%%i&set TDMM=%%j&set TDYY=%%k , при этом переменной TDDAY присваивается значение равное сегодняшнему дню,кто нибудь может подсказать как получить вчерашнюю дату?
Я пробовал завести переменную YSTD ,равную TDDAY-1 ))))) но такая хрень работает только с 11 по 31-е число))

Please help ))))))
Автор: vRU
Дата сообщения: 06.02.2008 15:27
может кто поможет, сделал на двух серверах батничек, на одном ок, на втором засада

содержимое add_day.cmd


Код:
l:
cd l:\7zip

del base01.7z

ren base02.7z base01.7z
ren base03.7z base02.7z
ren base04.7z base03.7z
ren base05.7z base04.7z
ren base06.7z base05.7z
ren base07.7z base06.7z
ren base08.7z base07.7z
ren base09.7z base08.7z
ren base10.7z base09.7z
ren base11.7z base10.7z
ren base12.7z base11.7z
ren base13.7z base12.7z
ren base14.7z base13.7z
ren base15.7z base14.7z
ren base16.7z base15.7z
ren base17.7z base16.7z
ren base18.7z base17.7z
ren base19.7z base18.7z
ren base20.7z base19.7z
ren base21.7z base20.7z
ren base22.7z base21.7z
ren base23.7z base22.7z
ren base24.7z base23.7z
ren base25.7z base24.7z
ren base26.7z base25.7z
ren base27.7z base26.7z
ren base28.7z base27.7z

7za.exe a base28.7z -r m:\base\ -x@l:\7zip\_exclude.txt -ssw -ms=off
rem -mx=3
Автор: 01MDM
Дата сообщения: 06.02.2008 20:05
ferapontov

Цитата:
подсказать как получить вчерашнюю дату?

Например так

Код:
@echo off
setlocal enabledelayedexpansion

set d=%date:~0,2%
set m=%date:~3,2%
set y=%date:~6,4%

if %d:~0,1%==0 set d=%d:~1%
if %m:~0,1%==0 set m=%m:~1%

set /a feb=y%%4
if %feb%==0 (set feb=29) else (set feb=28)

set /a tok=m-1
if %tok%==0 set tok=12
for /f "tokens=%tok%" %%i in ("31 %feb% 31 30 31 30 31 31 30 31 30 31") do (
    set /a d-=1
    if !d!==0 (
        set d=%%i
        set m=%tok%
        if !m!==12 set /a y-=1
    )
)

set d=0%d%
set m=0%m%
set yesterday=%d:~-2%.%m:~-2%.%y%

echo %yesterday%
Автор: Joolz
Дата сообщения: 07.02.2008 14:04
Есть задачка собрать инфу с компов в сети по установленным на них программам.
Собрал с каждого при помощи psexec и такого вот батника:

Код:
@ECHO OFF
Title Вывод списка установленных программ
setlocal enabledelayedexpansion
SET /a cnt=1
ECHO Составляю список установленного ПО. Ждите...
ECHO ╤яшёюъ ╧╬ эр ъюья№■ЄхЁх %computername%:>\\MyComp\PROGRAMS\%computername%.txt
SET UNISTALL=HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
FOR /f "tokens=7 delims=\" %%a IN ('reg query "%UNISTALL%"') DO (
FOR /f "tokens=1,2,*" %%b IN ('reg query "%UNISTALL%\%%a" ^| FIND /I "DisplayName"') DO (
ECHO !cnt!. %%d >>\\MyComp\PROGRAMS\%computername%.txt
set /a cnt=!cnt!+1
)
)
ECHO Спасибо

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: Доступ к реестру через RegEdit?


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