ユニークツールのD出力から出てくるファイルをフォルダから削除したいです。
フィールド:FileNameにフルパスを持っているので、これを利用してrun commandツールを使えばよいと思うのですが、
使い方がわからず難儀しています。
また、その後フォルダに残っているファイルを処理済みのものとして別のフォルダに移動させたいです。
よろしくお願いいたします
Solved! Go to Solution.
仰る通りCommanfツールを使えばファイル操作は可能です。ワークフロー実行完了時に自動で.batを実行する機能もありますが、今回の要望は動的に消す/移動するファイルを決めたいものだと思い、以下のやり方がベストかなと思います。他にもっと良い方法や、私の説明がおかしい・補足などあればご指摘いただけると嬉しいです!
================================================================
ユニークツールのDアンカーから不要ファイルのフルパスが出てくるとのことなので、deleteコマンドを使います。まずは
del(半角スペース)消したいファイル名
という文字列データをフォーミュラで作ります。これが.bat実行時にファイルを消すコマンドになります。
Dアンカーからの入力にはフィールド数が複数あると思うので、👆のdelをつけたデータフィールド以外はセレクトで除外してください。
その下流にコマンドツールをつなげて以下のように設定していただき実行すれば、ファイルが削除されます。コマンドツールで上流からきたデータをそのまま.batに書き込み、その.batを実行、という処理をしています。
ファイル移動については、
move(半角スペース)移動させたいファイル名(半角スペース)移動先フォルダ名
というコマンドを実行します。やり方は👆のdeleteと同じなので詳細省略します。もしdeleteの時と別のコマンドツールを使うのであれば、こちらの.batファイル名の設定は、deleteのコマンドツールで設定したものと変えておいた方が良いかと思います。
ファイル消す操作は場合によっては業務で必要なデータを失う致命的な結果になる可能性もありますので、テストデータなどで動作確認されてから運用されることを推奨します。
以上、何か参考になればうれしいです。
@gawa さん @donnaanna さん
補足です。
以下推奨したいと思います。
・先頭行にフィールド名を含めるオプション : オフ
・出力フィールドを引用 : 常に非表示
ファイルパスに空白が含まれる場合、うまくファイル削除ができないと思いますので、二重引用符(ダブルクオーテーション)で囲む必要があります。この際、「出力フィールドを引用」を「自動」や「常時」にしておくとおかしなことになるので、「常に非表示」にすることで回避できます。
@AkimasaKajitani 補足いただきありがとうございます。サンプルのツール設定そのまま使ってました^^;
いつも勉強になります!
@gawa さん@AkimasaKajitaniさん。ありがとうございます!
恥ずかしながらコマンドツールの設定の出力の意味が分かっていませんでした。フォーミュラでつくったものをいったんバッチファイルとして出力し、それを実行するということなんですね。
また、ファイルパスに空白が含まれる場合、など自分では思いつかないケースでした。ご指摘ありがとうございます!