2018年5月20日日曜日

FileMaker 15 以前|FileMaker 16で追加された「関数:SortValues」の代替案。|プラグイン使用

SortValues : http://www.filemaker.com/help/16/fmp/ja/#page/FMP_Help%2Fsortvalues.html

FileMaker 16で追加された「関数:SortValues」の代替案。
対象:FileMaker 15 以前。
OS:Windows
プラグイン:ScriptMakerPS | FileMaker Plugin for Windows : https://sites.google.com/site/scriptmakerps/

■文字列の場合
変数を設定 [$Result ; 値:
Let([
 ¢Val="かきくけこ¶あいうえお¶なにぬねの¶たちつてと¶さしすせそ"
;¢Val=Substitute ( ¢Val ; [¶ ; "\",\""] )
;¢Val="\"" & ¢Val  & "\""
;¢Script="@({Value})|Sort-Object $_"
;¢Script=Substitute ( ¢Script ; ["{Value}" ; ¢Val] )
];
SMPS_Exe( ¢Script )
)
]

■数値の場合(各値をダブルクォーテーションで包む必要なし)
変数を設定 [$Result ; 値:
Let([
 ¢Val="20¶10¶30¶50¶40"
;¢Val=Substitute ( ¢Val ; [¶ ; ","] )
;¢Script="@({Value})|Sort-Object $_"
;¢Script=Substitute ( ¢Script ; ["{Value}" ; ¢Val] )
];
SMPS_Exe( ¢Script )
)
]

降順:
;¢Script="@({Value})|Sort-Object $_"
昇順:
;¢Script="@({Value})|Sort-Object -Descending $_"

2018年4月13日金曜日

FileMaker Server を監視して停止していたら起動する。

FileMaker Server を監視して停止していたら起動する。

OS:Windows
タスク スケジューラ 設定
名前:サービスを監視|FileMaker Server

powershell -Command "$SN='FileMaker  Server';$S=Get-Service -Name $SN;$S.Status;if($S.Status  -eq 'Stopped'){Start-Service -Name $SN -PassThru;}"

2018年3月8日木曜日

PowerShellでメールを受信|Receive email with PowerShell,OpenPop.NET

<#
OpenPOP.NET code repository http://hpop.sourceforge.net/
OpenPop.NET 日本語情報トップページ - OSDN : https://ja.osdn.net/projects/sfnet_hpop/
#>

Add-Type -Path "C:\OpenPop.NET 2.0.5\binaries\unsigned\OpenPop.dll" ;

$hostname="POP_Server";
$port=110;
$useSsl=$False;
$username="POP_Account";
$password="POP_Password";

$client = New-Object OpenPop.Pop3.Pop3Client

$client.Connect($hostname, $port, $useSsl);
$client.Authenticate($username, $password);

$messageCount = $client.GetMessageCount();
#$client.GetMessageUids();

$Message=$client.GetMessage(1);

$textVersions=$Message.FindAllTextVersions();
$TEXT= New-Object System.Text.StringBuilder;
$HTML= New-Object System.Text.StringBuilder;
foreach ($textVersion in $textVersions)
{
$MediaType=$textVersion.ContentType.MediaType;
$IsAttachment=$textVersion.IsAttachment;
IF($MediaType -eq "text/plain" -And $IsAttachment -eq $False ){
$TEXT.Append($textVersion.GetBodyAsText())| Out-Null;
}elseif($MediaType -eq "text/html" -And $IsAttachment -eq $False){
$HTML.Append($textVersion.GetBodyAsText())| Out-Null;
}
}

$PATH_LIST= New-Object System.Collections.ArrayList;
$attachments=$Message.FindAllAttachments();
 foreach ($attachment in $attachments)
  {
$PATH="C:\Users\USER\Desktop\attachment\" + $attachment.FileName;
  $attachment.Save($PATH);
  $PATH_LIST.Add($PATH)| Out-Null;
}

$Message.Headers.Subject;
$Message.Headers.From.Address;
$Message.Headers.From.DisplayName;
$Message.Headers.To.Address;
$Message.Headers.To.DisplayName;
$Message.Headers.Date;
$Message.Headers.DateSent;
$TEXT.ToString();
$HTML.ToString();
$PATH_LIST;