Подскажите, можно ли как-то узнать дату предыдущего рабочего дня?
» Задачи на bat-файлах 4
VedunO
в "шапке"
Цитата:
?
в "шапке"
Цитата:
Работа с текстом, датой, и файлами »
?
VedunO
А по какому принципу определять предыдущий рабочий день? Может быть вчера, может и после новогодних праздников. Найти предыдущий "черный" день в календаре? Это осуществимо, но это большой по объему код.
А по какому принципу определять предыдущий рабочий день? Может быть вчера, может и после новогодних праздников. Найти предыдущий "черный" день в календаре? Это осуществимо, но это большой по объему код.
01MDM
А что значат
Цитата:
А что значат
Цитата:
||? и как быть, если надо при ненахождении в файле report.txt строки с именем файла еще действия определенные провести.
Wise_Kaa
Цитата:
Код:
@echo off
for %%f in (*.*) do (
find "%%f" report.txt 1>nul || (
выполняем действия если в report.txt нет файла %%f
)
)
Цитата:
и как быть, если надо при ненахождении в файле report.txt строки с именем файла еще действия определенные провести.
Код:
@echo off
for %%f in (*.*) do (
find "%%f" report.txt 1>nul || (
выполняем действия если в report.txt нет файла %%f
)
)
01MDM
Большое-большое спасибо!
А еще вопросик можно? Как назначить значению переменной размер указанного файла?
set temp=~zo что-то типа этого?
Большое-большое спасибо!
А еще вопросик можно? Как назначить значению переменной размер указанного файла?
set temp=~zo что-то типа этого?
Помогите, плиз.
Стоит задача - запустить прогу из командной строки с определенными параметрами запуска, а потом тупо ее закрыть.
Точнее задача состоит в следующем - программа сетевая, нужно удалить один из файлов, но при работе сетевых пользователей он блокируется. Определенные параметры это и есть закрытие сетевых сессий
Стоит задача - запустить прогу из командной строки с определенными параметрами запуска, а потом тупо ее закрыть.
Точнее задача состоит в следующем - программа сетевая, нужно удалить один из файлов, но при работе сетевых пользователей он блокируется. Определенные параметры это и есть закрытие сетевых сессий
Подскажите, как снять галку наследования разрешений NTFS с помощью коммандной строки?
Если перезаписать права, то галка наследования пропадает
cacls c:\test /t /g user:f
cacls c:\test /t /g user:f
Народ - может кто то поможет ?
Сразу извиняюсь если ошибся темой.
Вобщем вопрос такой - нужен сценарий или что то подобное или просто посоветуйте прогу - сам просто ничего вообще ненашел
Смысл в следующем: надо чтобы при вставке диска в привод он тупо копировался на винт в папку, создавая в этой папке подпапку к примеру "дата_время" куда клал свое содержимое. Очень желательно что бы этот процесс был не виден полностью (кроме как мигание лампочке на приводе) или хотябы как то так, чтобы обычный юзер этого не понял. И еще чтобы блокировался латок привода во время копирования если конечно возможно это.
Если кто может - помогите - очень надо....
Если ишибся темой или кто знает что то подобное - ткните носом..
Зарание огромнейшее спасибо
Сразу извиняюсь если ошибся темой.
Вобщем вопрос такой - нужен сценарий или что то подобное или просто посоветуйте прогу - сам просто ничего вообще ненашел
Смысл в следующем: надо чтобы при вставке диска в привод он тупо копировался на винт в папку, создавая в этой папке подпапку к примеру "дата_время" куда клал свое содержимое. Очень желательно что бы этот процесс был не виден полностью (кроме как мигание лампочке на приводе) или хотябы как то так, чтобы обычный юзер этого не понял. И еще чтобы блокировался латок привода во время копирования если конечно возможно это.
Если кто может - помогите - очень надо....
Если ишибся темой или кто знает что то подобное - ткните носом..
Зарание огромнейшее спасибо
Wise_Kaa
Код:
for %%i in (*.*) do set size=%%~zi
Код:
for %%i in (*.*) do set size=%%~zi
Sk09
Придётся все равно после вставки диска запускать батник, как скрытно запустить поищи в шапке, будет что то типа
xcopy "E:\" c:\%date% /s /e /h /r /i
Придётся все равно после вставки диска запускать батник, как скрытно запустить поищи в шапке, будет что то типа
xcopy "E:\" c:\%date% /s /e /h /r /i
Нужно запустить .cmd файл с параметрами из командной строки, но что б окно консоли было максимизированно. Делаю так:
Код: cmd /c Start /wait /max test.cmd YY 1st
Код: cmd /c Start /wait /max test.cmd YY 1st
GORA2
В начале батника пропиши
Код:
mode con lines=n cols=m
:: где n - кол-во строк, m=кол-во символов в строке
В начале батника пропиши
Код:
mode con lines=n cols=m
:: где n - кол-во строк, m=кол-во символов в строке
01MDM
Цитата:
ну да, хотелось бы конечно так
Цитата:
А по какому принципу определять предыдущий рабочий день? Может быть вчера, может и после новогодних праздников. Найти предыдущий "черный" день в календаре? Это осуществимо, но это большой по объему код.
ну да, хотелось бы конечно так
Цитата:
Или так
Код:
start /wait /max cmd /c "mode con lines=40 cols=120 && test.cmd"
Мне нужен запуск test.cmd не из батника, а из командной строки которая прописана в ini файле другой программы! А start можно запустить только из батника. Меня интересует корректна ли вообще моя строка и можно ли как то обойтись без cmd /c ?
GORA2
Тогда только обозначить размеры в самом батнике и все равно запускать:
Код:
:: Если в %path%
cmd /c "start /max test.cmd"
:: Если нет
cmd /c "cd ^"C:\Path To\с пробелами^" && start /max test.cmd"
Тогда только обозначить размеры в самом батнике и все равно запускать:
Код:
:: Если в %path%
cmd /c "start /max test.cmd"
:: Если нет
cmd /c "cd ^"C:\Path To\с пробелами^" && start /max test.cmd"
Как определить версию винды в батнике, типа 9x или NT?
Пробовал такой код:
Код: if c:\%os%==c:\ goto win9x
if not c:\%os%==c:\ goto winnt
:winnt
.................
Пробовал такой код:
Код: if c:\%os%==c:\ goto win9x
if not c:\%os%==c:\ goto winnt
:winnt
.................
Цитата:
Sk09
Придётся все равно после вставки диска запускать батник, как скрытно запустить поищи в шапке, будет что то типа
xcopy "E:\" c:\%date% /s /e /h /r /i
Спасибо огромное, но может кто нибудь подскажет поподробнее, а то я сам в этом совсем не смыслю.......
А насчет придеться запускать - нельзя например зациклить и вставить в автозапуск например чтоб каждые 30 секунд например проверяла привод ?
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
Код: 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
king_stiven
Спасибо огромное
Попробую дома вечерком - если возникнут вопросы - напишу.
Добавлено
Скачал сейчас cmdow, в анотации написано Cmdow v1.4.3 for Windows NT4/2000/XP, а он пойдет под windows server 2003 c sp2 ? а то проверять как то немного боязно, всетаки рабочий сервак - за него на части порвут.....
Спасибо огромное
Попробую дома вечерком - если возникнут вопросы - напишу.
Добавлено
Скачал сейчас cmdow, в анотации написано Cmdow v1.4.3 for Windows NT4/2000/XP, а он пойдет под windows server 2003 c sp2 ? а то проверять как то немного боязно, всетаки рабочий сервак - за него на части порвут.....
Sk09
Цитата:
не знаю, вопрос к гуру
добавь ещё в начало батника:
@echo off
chcp 1251 > nul
Цитата:
Скачал сейчас cmdow, в анотации написано Cmdow v1.4.3 for Windows NT4/2000/XP, а он пойдет под windows server 2003 c sp2 ?
не знаю, вопрос к гуру
добавь ещё в начало батника:
@echo off
chcp 1251 > nul
king_stiven
Спасибо - попробовал на рабочем компе с XP - работает отлично - но хотелось немного можно доработать в части: чтобы после копирования сценарий не выключался, а например включалась пауза 10 - 20 минут, а потом проверка продолжалась и так по кругу.
Запустить то раз не трудно - вопрос в том, что уезжаю на сессию и 3 недели меня не будет.....
Спасибо - попробовал на рабочем компе с XP - работает отлично - но хотелось немного можно доработать в части: чтобы после копирования сценарий не выключался, а например включалась пауза 10 - 20 минут, а потом проверка продолжалась и так по кругу.
Запустить то раз не трудно - вопрос в том, что уезжаю на сессию и 3 недели меня не будет.....
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
Впрочем отдельно sleep можешь взять здесь: http://www.windowsfaq.ru/images/stories/files/sleep.exe
:test
....
sleep 20
или
ping 127.0.0.1 -n 20
goto test
:go
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
Код: @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
king_stiven,ipmanyak
Спасибо огромное - погонял на работе с дисководом - все отлично работает.
Попробую еще дома вечерком с CDромом и завтра уже на комп повешу...
Спасибо огромное - погонял на работе с дисководом - все отлично работает.
Попробую еще дома вечерком с CDромом и завтра уже на комп повешу...
Всем привет!
У меня такой вопрос: мне каждый день надо грузить файлы за вчерашний день,которые находятся в папках : \\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 ))))))
У меня такой вопрос: мне каждый день надо грузить файлы за вчерашний день,которые находятся в папках : \\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 ))))))
может кто поможет, сделал на двух серверах батничек, на одном ок, на втором засада
содержимое 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
содержимое 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
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%
Цитата:
подсказать как получить вчерашнюю дату?
Например так
Код:
@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%
Есть задачка собрать инфу с компов в сети по установленным на них программам.
Собрал с каждого при помощи 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 Спасибо
Собрал с каждого при помощи 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, истории становления российского интернета. Сделано для людей.