@echo off setlocal set "source=D:\test" set "destination=D:\test" set "dirs="." "fullbackup" "diffbackup"" set "passwd=Qwerty" set "dd=%DATE:~0,2%" set "mm=%DATE:~3,2%" set "yyyy=%DATE:~6%" set "hh=%TIME:~0,2%" set "mn=%TIME:~3,2%" set "ss=%TIME:~6,2%" set "curdate=%dd%-%mm%-%yyyy%-%hh%-%mn%-%ss%" set "logfile=%cd%\log.tmp" REM Make the logfile if not exist. if not exist "%logfile%" 1> nul 2> "%logfile%" echo. REM Make ftp file. set "ftp_host=127.0.0.1" set "ftp_username=test" set "ftp_pass=test" set "file_transport=transport.txt" set "ftp_root=/" ( echo open %ftp_host% echo user %ftp_username% %ftp_pass% echo binary ) > "%file_transport%" REM Zip files. set "zipped=0" for %%A in (%dirs%) do if exist "%source%\%%~A" ( set "setdir=" for %%B in ("%source%\%%~A\*") do if /i not "%%~xB" == ".7z" ( "C:\Program Files\7-Zip\7z.exe" a -ssw -mx9 -p"%passwd%" "%destination%\%%~A\%%~nxB_%curdate%.7z" "%%~fB" -sdel if not errorlevel 1 ( set /a "zipped+=1" >> "%logfile%" echo zip "%%~A\%%~nxB_%curdate%.7z". if not defined setdir ( set "setdir=1" if not "%%~A" == "." echo mkdir "%ftp_root%/%%~A" echo cd "%ftp_root%/%%~A" echo lcd "%destination%\%%~A" ) echo put "%%~nxB_%curdate%.7z" ) >> "%file_transport%" ) ) >> "%file_transport%" echo bye REM Send to FTP server by cmd ftp. if %zipped% equ 0 ( >> "%logfile%" echo zip no files for "%curdate%". ) else ( ftp -v -n -i -s:"%file_transport%" if errorlevel 1 ( >> "%logfile%" echo ftp error %errorlevel%. ) else >> "%logfile%" echo ftp success. ) del "%file_transport%" REM Delete old files older than N days. for %%A in (%dirs%) do if exist "%destination%\%%~A\*.7z" ( pushd "%destination%\%%~A" && ( echo CD: "%destination%\%%~A" forfiles /d -30 /m *.7z /c "cmd /c del @file" popd ) ) REM Email the log content. if not exist "%logfile%" exit /b 0 set command=^&{$usr= 'mylogon';^ $pwd= ConvertTo-SecureString -String 'mypassword' -AsPlainText -Force;^ $cred= New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $usr, $pwd;^ $body= Get-Content -LiteralPath '%logfile%' -Raw;^ Send-MailMessage -To 'mymail' -From 'mymail' -Subject 'Log' -SmtpServer 'smtp.mail.ru' -Port 587 -Credential $cred -UseSSL -Body $body} Powershell -Command "%command%" REM Merge or rename .tmp file to .txt file. for %%A in ("%logfile%") do ( if "%%~xA" == ".tmp" ( if exist "%%~nA.txt" ( type "%%~A" >> "%%~nA.txt" del "%%~A" ) else ren "%%~A" "%%~nA.txt" ) ) exit /b 0
Ввод даты и времени, когда вы используете
mm
для месяца иmm
для минуты. Теперь используйтеmn
в течение нескольких минут, чтобы разделить значения.Все файлы, кроме файлов .7z, будут индивидуально заархивированы и доступны для
ftp
.В переменной
zipped
хранится количество архивов файлов, поэтому командаftp
выполняется, только если значениеzipped
больше, чем0
.
transport.txt
содержимое будет вставлено несколько раз, а не все сразу. Это делается для того, чтобы каждый каталог и файл могли обрабатываться отдельно.Циклы
for
теперь могут выполнять итерацию списка каталогов для архивирования файлов*.7z
. Командыftp
put
будут отображаться вtransport.txt
с каждым архивированным файлом.Упрощенная запись в файл
%file_transport%
. При необходимости вставьтеmkdir
, чтобы убедиться, что удаленный каталог создан до того, как произойдетcd
.
forfiles
теперь используется в каждом каталоге, указанном в переменнойdirs
.Переменная
dirs
содержит список имен каталогов, через которые необходимо выполнить итерацию..
- это текущий каталог, то есть корень путиsource
.
powershell
отправит текстовое содержимоеlogfile
по электронной почте с помощью командлета Send-MailMessage . Он не отправит, если путь переменнойlogfile
не существует.Если расширение файла журнала равно
.tmp
, оно будет переименовано с расширением.txt
, если оно не существует, в противном случае будет объединено с файлом.txt
и файл.tmp
будет удален. Это делается в конце сценария. Использование расширения.tmp
позволяетpowershell
отправлять по электронной почте содержимое в файле.tmp
, а не в больший файл.txt
.
a:active
: когда вы щелкаете по ссылке и удерживаете ее (active!).
a:visited
: когда ссылка уже была посещена.
Если вы хотите, чтобы ссылка, соответствующая текущей странице, была выделена, вы можете задать ей определенный стиль -
.currentLink {
color: #640200;
background-color: #000000;
}
Добавьте этот новый класс только к соответствующей li
(ссылке), либо на стороне сервера, либо на стороне клиента (используя JavaScript).
Используйте единый класс, называют что-то как класс = "активным" и добавляют его только к текущей странице вместо всех страниц. Если Вы - дома что-то как ниже:
<ul id="navigation">
<li class="active"><a href="/">Home</a></li>
<li class=""><a href="theatre.php">Theatre</a></li>
<li class=""><a href="programming.php">Programming</a></li>
</ul>
и Ваш CSS как
li.active{
color: #640200;
}
a: link
-> Определяет стиль для непосещенных ссылок.
a: hover
-> Определяет стиль для зависших ссылок.
Ссылка зависает при наведении на нее мыши.