Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Старожил


Сообщения: 173
Благодарности: 4

Профиль | Отправить PM | Цитировать


1.
cd y:\ так как в команде не было полного пути до файла. указываю диск (исправил)
cd y:\tablereports - не могу объяснить - удалил

2. Атрибуты - не в привычном смысле слова. То есть это не атрибуты файловый системы (архивный, скрытый, acl, что там ещё...) - эти атрибуты закодированы в имени файла.
$findAtr = $findFile -match "rar.sig.enc$" -cmatch "S" - мне нужны файлы, которые оканчиваются на rar.sig.enc и в имени содержат большую букву S.

3. Исправил работает.

Вот такой отчет получился.
Код: Выделить весь код
Write-Host "Файл НЕ прислали"
	$name | Out-File не_прислали.txt -Append
	$report = get-content не_прислали.txt
	$encoding = [System.Text.Encoding]::UTF8
	$body = $report | Where-Object {$_ -ne "" -and $_ -match "[0-9]"}
	Send-MailMessage -encoding $encoding -From ftp@company.ru -To my@company.ru -Subject "Отчет об S-файлах. Не отправили:" -Body $body -SmtpServer mail.company.ru
В результате имеем:
HTML код: Выделить весь код
22 Number1Номер 1 22-1 Number1Номер 1 44-1 Number2Номер3 222-333 52 NUMBER5 555 53-1 Number2 22223333444

Не очень хорошо читаемо. Что можете посоветовать? Кроме того, я создаю отчет через создание промежуточного файла. Как можно этого избежать?
На всякий случай весь код:
Код: Выделить весь код
cls
$base = Import-Csv y:\data.txt -Delimiter ":" -Header "N","Отдел","Контактный номер"
$files = Get-ChildItem y:\TableReports | Where {!$_.PsIsContainer -and $_.Name -match ".enc$"} | Select-Object -Expand FullName
$DayFolder = New-item -Path y:\TableReports\week -name "$(Get-Date -uformat '%Y%m%d')" -type directory
$DayFolder2 = New-item -Path y:\TableReports\markdelete -name "$(Get-Date -uformat '%Y%m%d')" -type directory
foreach($name in $base)
{
	$findFile = $files -match $name.N
	if($findFile)
	{
	Write-Host "Файл прислали"
	$name.N
	$findAtr = $findFile -match "rar.sig.enc$" -cmatch "S"
		if($findAtr)
		{
		Write-Host "Атрибуты верны"
		$name.N
		Copy-Item -Path $findFile -Destination $DayFolder.FullName
		}
		else
		{
		Write-Host "Атрибуты НЕ верны"
		$name.N
		Copy-Item -Path $findFile -Destination $DayFolder2.FullName
		}
	}
	else 
	{
	Write-Host "Файл НЕ прислали"
	$name | Out-File не_прислали.txt -Append
	$report = get-content не_прислали.txt
	$encoding = [System.Text.Encoding]::UTF8
	$body = $report | Where-Object {$_ -ne "" -and $_ -match "[0-9]"}
	Send-MailMessage -encoding $encoding -From vftp@company.ru -To my@company.ru -Subject "Отчет об S-файлах. Не отправили:" -Body $body -SmtpServer mail.company.ru
	}
}

Отправлено: 12:15, 28-09-2012 | #5