Показать полную графическую версию : помощь в написании
Доброго дня.
помогите с написанием пожалуйста.
необходимо:
если файл по пути \\имя пк\имя папки\"текущая дата минус 1"_ABV.txt есть
то продолжить выполнение скрипта
если нет то
exit
зы
формат даты в имени файла ддммгггг
спасибо
DJ Mogarych
19-01-2023, 15:53
Минус 1 что - год? месяц? день? час?
Serguei Kouzmine
20-01-2023, 06:17
@Ejik76 какими скрипт языками владеете - На каком уровне ?
инус 1 что - год? месяц? день? час? »
минус день
DJ Mogarych
20-01-2023, 09:12
Powershell
if (-not(Test-Path "\\имя пк\имя папки\$((get-date).AddDays(-1) |get-date -f "ddMMyyyy")_ABV.txt")) {exit}
силами CMD это не решается? я правильно понимаю?
силами CMD это не решается? я правильно понимаю? »
Решается, но чтобы корректно вычесть один день от текущей даты... необходимо учесть локаль в которой выдает дату ОС, написать зубодробильную псевдофункцию для преобразования из имени файла "ddMMyyyy"... в общем, через powershell реализуется всё гораздо проще...
Если есть потребность реализации исключительно на cmd, подождите коллегу megaloman, возможно, он заинтересуется и напишет код...
Но лично я порекомендовал бы, для использования скриптов именно, изучить powershell, Вам самому будет гораздо проще на нем реализовывать разные хотелки автоматизации...
megaloman
21-01-2023, 21:31
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
Если есть потребность реализации исключительно на cmd, подождите коллегу ....»Похоже батникописателей не осталось. Надеюсь, погода улучшится и Iska вернется, я многому у него научился
Serguei Kouzmine
22-01-2023, 02:44
батникописателей не осталось. »
--- не все фрукты и овощи одинаково полезны
Похоже батникописателей не осталось. »
Да... всё течёт, всё меняется... со временем... решает необходимость. Если есть более функциональные и простые в реализации способы, то ведь нет никакой необходимости использовать устаревшие и статичные инструменты (по-простому: пользоваться коловоротом можно... если электричества нет под рукой), как-то так...
Надеюсь, погода улучшится и Iska вернется, я многому у него научился »
Да, что-то давно его не видно... последний раз заглядывал в сентябре, не случилось ли чего...
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.