質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

解決済

1回答

4651閲覧

PowerShellで、クリップボードの文字列でファイルをリネームをしたい

tera-ht

総合スコア8

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2018/07/28 04:07

前提・実現したいこと

はじめまして、よろしくお願いいたします。
Windows10 のPowershellにてファイルのリネームを試みています。
普通に文字列を指定して行う場合は問題ないのですが、クリップボードにある文字列に置換したいと考えています。

発生している問題・エラーメッセージ

特にありません。

該当のソースコード

PowerShell

1ps = "Get-ChildItem C:\Users\Desktop\test* | Rename-Item -NewName { $_.Name -replace <#DBL>aaa<#DBL>, clipboard }"

試したこと

上記コードの clipboard にあたる箇所に何かを入れると良いのではと思い色々試してみましたがうまくいきませんでした。。

補足情報(FW/ツールのバージョンなど)

特にありません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Windows10上のWindows PowerShellならGet-Clipboardコマンドレットを使用すれば良いでしょう。

古いPowerShellであったり、上手くいかない場合は、.NETのクラスを直接使用します。

powershell

1Add-Type -AssemblyName PresentationFramework 2[System.Windows.Clipboard]::GetText()

追記

UWSCは使ったことが無いのでそちらの細かい記法・制限などはわかりませんが、
動かすだけであれば以下の部分のclipboard(Get-Clipboard)に変更します。

powershell

1Rename-Item -NewName { $_.Name -replace '<#DBL>aaa<#DBL>', clipboard }

powershell

1Rename-Item -NewName { $_.Name -replace '<#DBL>aaa<#DBL>', (Get-Clipboard) }

引数無しでGet-Clipboardコマンドレットを使用すると、クリップボード内の文字列を取得できます。
そのままだと、他の式の中で使えないため、()でくくってその部分だけ先に評価が行われるようにしておきます。

懸念点

クリップボードの中に文字列が入っていなくても(Get-Clipboardの結果が""でも)動いてしまうので、
先に結果を変数に受け取り、その変数を使って条件分岐・処理などを行った方が良いかもしれません。

powershell

1if ( -not [string]::IsNullOrEmpty( ([string]$clipTxt = Get-Clipboard -Format Text) ) ) { 2 Get-ChildItem C:\Users\Desktop\test* | 3 Rename-Item -NewName { $_.Name -replace '<#DBL>aaa<#DBL>', $clipTxt } 4}

投稿2018/07/28 04:23

編集2018/07/28 09:26
imihito

総合スコア2166

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tera-ht

2018/07/28 06:35

早速回答いただきましてありがとうございます。 すみません、PowerShellについてはかなりの初心者だということと、UWSCという自動処理アプリの中でPowerShellを使いたいという前提が記入漏れておりました。 Get-Clipboard コマンドレットは、Rename-Item コマンドレットの中でどのように記述したらよろしかったでしょうか? 大変初歩的な質問で申し訳ございません。ご教授いただけますと幸いです。 どうぞよろしくお願いいたします。
imihito

2018/07/28 09:27

回答へ追記を行いました。
tera-ht

2018/07/28 10:30

ずばり思った通りに動いてくれました!! ()で囲めば良かったのですね、大変勉強になりました!! 懸念点まで出してくださり感謝しかありません。 この度は大変丁寧にご教授いただきまして誠にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問