teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コメントに対して補足

2018/07/28 09:26

投稿

imihito
imihito

スコア2166

answer CHANGED
@@ -5,4 +5,34 @@
5
5
  ```powershell
6
6
  Add-Type -AssemblyName PresentationFramework
7
7
  [System.Windows.Clipboard]::GetText()
8
+ ```
9
+
10
+ ---
11
+
12
+ # 追記
13
+
14
+ UWSCは使ったことが無いのでそちらの細かい記法・制限などはわかりませんが、
15
+ 動かすだけであれば以下の部分の`clipboard`を`(Get-Clipboard)`に変更します。
16
+
17
+ ```powershell
18
+ Rename-Item -NewName { $_.Name -replace '<#DBL>aaa<#DBL>', clipboard }
19
+ ```
20
+
21
+ ```powershell
22
+ Rename-Item -NewName { $_.Name -replace '<#DBL>aaa<#DBL>', (Get-Clipboard) }
23
+ ```
24
+
25
+ 引数無しで`Get-Clipboard`コマンドレットを使用すると、クリップボード内の文字列を取得できます。
26
+ そのままだと、他の式の中で使えないため、`()`でくくってその部分だけ先に評価が行われるようにしておきます。
27
+
28
+ ## 懸念点
29
+
30
+ クリップボードの中に文字列が入っていなくても(`Get-Clipboard`の結果が`""`でも)動いてしまうので、
31
+ 先に結果を変数に受け取り、その変数を使って条件分岐・処理などを行った方が良いかもしれません。
32
+
33
+ ```powershell
34
+ if ( -not [string]::IsNullOrEmpty( ([string]$clipTxt = Get-Clipboard -Format Text) ) ) {
35
+ Get-ChildItem C:\Users\Desktop\test* |
36
+ Rename-Item -NewName { $_.Name -replace '<#DBL>aaa<#DBL>', $clipTxt }
37
+ }
8
38
  ```