4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Power Automate Desktopでサインイン中のWindowsアカウント名を取得してファイル場所の動的パスに対応する

Last updated at Posted at 2023-03-03

Power Automate(Desktop)でフローを作成する際、「ダウンロード」もしくは「デスクトップ」フォルダーの直下に置いてあるファイルを読み込みたいが、下記のように環境によってファイルパスが変わるパターンをどう対応したらいいかわからない時に使える方法についての記録になります。

ダウンロードフォルダーのパス
C:\Users\【アカウント名】\Downloads\test.txt

デスクトップフォルダーのパス
C:\Users\【アカウント名】\Desktop\test.txt

アカウント名をWindowsでログインしたアカウント名によってパスが変わり、「test.txt」ファイルを読み取ることができるようにしてみようと思います。

まず、読み取るファイルを作成

Power Automate Desktop(以下、PAD)で読み取るファイルを事前に作成しておく
0-0-1.png

読み取った以下の内容をメッセージボックスに出力するのか最終目的である
0-0-2.png

アカウント名を取得してみよう!

サインインしているWindowsのアカウント名を取得するにはPowerShellを使えば簡単にできるることがわかった

アクションメニューの「スクリプト」ー「Powerwshellスクリプトの実行」を追加する
0.png

スクリプトに入力するコマンドは以下の通り。
返却値は「スクリプトの出力」のみでOK

whoami

2.png

コマンドを訳すると、「私は誰ですか?」
ふむふむ、、、
意外とシンプルすぎてこのコマンドを探すのにかかった時間がもったいないぐらいだ、、

PowerShellから出力された結果を見やすく確認するためにメッセージボックスを使ってみよう
「実行」ボタンクリック
1.png

よっしゃー!アカウント名「mypc」が取れたぞー
出力結果のテキストから分割する必要があるが、これぐらいは楽勝だ!
2.1.png

テキストを分割する

アクションメニューの「テキスト」ー「テキストの分割」を使おう
2-1.png

以下の通りにセットして
(生成される変数名を「dividedText」にした)
3.png

メッセージボックスに出してみると
3-1.png

おおー、スムーズにできるもんだー
変数「dividedText」はリストタイプで保存されるので

dividedText[0] -> "myhome"
dividedText[1] -> "mypc"

になるはず。

確認のため、メッセージボックスに出してみた
5.png
想定の通り、表示された!
が、あとでテストした際にわかったのは「dividedText[1]」をそのまま使えないことだった

入力値:C:\Users%dividedText[1]%\Desktop\test.txt
想定値:C:\Users\mypc\Desktop\test.txt
実際の結果:C:\Users\mypc
       \Desktop\test.txt

上記「実際の結果」を見たらわかるが、なぜか改行が入っている、、
どうにかしなくちゃ、、

テキスト前後にトリミング処理をする

「トリミング」アクションを使って変数に格納されているテキストの前後に存在する不要なやつは消してみよう
アクションメニューの「テキスト」ー「テキストのトリミング」
6.png

先頭と末尾の空白文字をトリミングでセット
4-1.png
これで改行コードは削除されるはず!

ファイルからテキストを読み取る

最後に、ファイルを読み取ってみよう
アクションメニューの「ファイル」ー「ファイルからテキストを読み取る」を選択
3-2.png

ファイル パス欄にトリミングして得た変数「accName」を設定した
これで、どのアカウント名でも対応ができるはず!
7.png

fileから読み取ったテキストをメッセージボックスに表示設定
さっそく、テストしてみよう!
8.png

大成功!:v:






追記--------------------------------------
「デスクトップ」フォルダーに関してはPowerShellに以下のコマンドを入力することで簡単に取得できることがわかりました。

[Environment]::GetFolderPath([Environment+SpecialFolder]::desktop)
4
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?