Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   помощь в написании (http://forum.oszone.net/showthread.php?t=352852)

Ejik76 19-01-2023 11:52 3001267

помощь в написании
 
Доброго дня.
помогите с написанием пожалуйста.

необходимо:
если файл по пути \\имя пк\имя папки\"текущая дата минус 1"_ABV.txt есть
то продолжить выполнение скрипта
если нет то
exit

зы
формат даты в имени файла ддммгггг

спасибо

DJ Mogarych 19-01-2023 15:53 3001285

Минус 1 что - год? месяц? день? час?

Serguei Kouzmine 20-01-2023 06:17 3001350

@Ejik76 какими скрипт языками владеете - На каком уровне ?

Ejik76 20-01-2023 08:50 3001355

Цитата:

Цитата DJ Mogarych
инус 1 что - год? месяц? день? час? »

минус день

DJ Mogarych 20-01-2023 09:12 3001356

Powershell
Код:

if (-not(Test-Path "\\имя пк\имя папки\$((get-date).AddDays(-1) |get-date -f "ddMMyyyy")_ABV.txt")) {exit}

Ejik76 20-01-2023 09:24 3001357

силами CMD это не решается? я правильно понимаю?

YuS_2 20-01-2023 09:45 3001361

Цитата:

Цитата Ejik76
силами CMD это не решается? я правильно понимаю? »

Решается, но чтобы корректно вычесть один день от текущей даты... необходимо учесть локаль в которой выдает дату ОС, написать зубодробильную псевдофункцию для преобразования из имени файла "ddMMyyyy"... в общем, через powershell реализуется всё гораздо проще...
Если есть потребность реализации исключительно на cmd, подождите коллегу megaloman, возможно, он заинтересуется и напишет код...
Но лично я порекомендовал бы, для использования скриптов именно, изучить powershell, Вам самому будет гораздо проще на нем реализовывать разные хотелки автоматизации...

megaloman 21-01-2023 21:31 3001485

Ejik76, Громоздкий CMD за счёт процедуры корректного вычитания даты
Код:

@Echo Off
cls
        Call :FromDate_ddmmyyyy -1 %Date% "ddmmyyyy"

        Set "File=\\server\Test2\%ddmmyyyy%_ABV.txt"
        If Not Exist "%File%" (Echo File "%File%" not found &Pause &Exit /b 1)
        Echo File "%File%" exists and script continue
pause
Exit /B 0

:FromDate_ddmmyyyy

rem Пересчет даты на заданное кол-во дней
rem В первом аргументе +- дни
rem Во втором аргументе дата в формате dd.mm.yyyy
rem В третем аргументе имя переменной в кавычках где получим новую дату в формате ddmmyyyy

rem Заимствовано http://forum.oszone.net/thread-186889.html
rem вызов Call :FromNow %DeltaDay% %Date% "ddmmyyyy"
rem результат в перемменной %ddmmyyyy%

 SetLocal
 Set "DT=%~2"
 Set yyyy=%DT:~-4%& set /a mm=100%DT:~3,2%%%100& set /a dd=100%DT:~,2%%%100
 Set /A JD=%~1+dd-32075+1461*(yyyy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yyyy+4900+(mm-14)/12)/100)/4
 Set /A L=JD+68569,N=4*L/146097,L=L-(146097*N+3)/4,I=4000*(L+1)/1461001
 Set /A L=L-1461*I/4+31,J=80*L/2447,K=L-2447*J/80,L=J/11
 Set /A J=J+2-12*L,I=100*(N-49)+I+L
 Set /A yyyy=I,mm=100+J,dd=100+K
 EndLocal& Set "%~3=%dd:~-2%%mm:~-2%%yyyy%"
Exit /B 0

Цитата:

Цитата YuS_2
Если есть потребность реализации исключительно на cmd, подождите коллегу ....»

Похоже батникописателей не осталось. Надеюсь, погода улучшится и Iska вернется, я многому у него научился

Serguei Kouzmine 22-01-2023 02:44 3001501

Цитата:

Цитата megaloman
батникописателей не осталось. »

--- не все фрукты и овощи одинаково полезны

YuS_2 22-01-2023 09:38 3001512

Цитата:

Цитата megaloman
Похоже батникописателей не осталось. »

Да... всё течёт, всё меняется... со временем... решает необходимость. Если есть более функциональные и простые в реализации способы, то ведь нет никакой необходимости использовать устаревшие и статичные инструменты (по-простому: пользоваться коловоротом можно... если электричества нет под рукой), как-то так...
Цитата:

Цитата megaloman
Надеюсь, погода улучшится и Iska вернется, я многому у него научился »

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


Время: 11:56.

Время: 11:56.
© OSzone.net 2001-