xlogI125’s blog

パソコン作業を効率化したい

PowerShell練習 パスに角括弧[]を含む作業フォルダー

  • パスに角括弧[]を含む場合、アドレスバーに powershell と入力してPowerShellを起動しても、起動時のカレントディレクトリが期待した場所になっていない様子。
# C:\tmp\■`$'([長すぎる対象のパス])'$`■
Set-Location -LiteralPath 'C:\tmp\■`$''([長すぎる対象のパス])''$`■\'
Set-Location -Path 'C:\tmp\■`$''(`[長すぎる対象のパス`])''$`■\'
# \\LOCALHOST\c$\tmp\■`$'([長すぎる対象のパス])'$`■
Set-Location -LiteralPath '\\LOCALHOST\C$\tmp\■`$''([長すぎる対象のパス])''$`■\'
Set-Location -Path '\\LOCALHOST\C$\tmp\■`$''(`[長すぎる対象のパス`])''$`■\'

対応策: クリップボードにコピーしたパスの文字列を利用

# PowerShell 5.1, Windows 11
#
# [ショートカット(.lnk)]
#  リンク先(T):
#   PowerShell.exe -NoLogo -NoExit -ExecutionPolicy Restricted -Command "&{Set-Location -LiteralPath (Get-Clipboard)}"

対応策: デスクトップでフォルダ内にあるファイルを選択して「送る(N)」

# PowerShell 5.1, Windows 11
#
# [ファイル名]
#  "%USERPROFILE%\Desktop\cdLiteralPath[].ps1"
# [エンコード]
#  UTF-8 (BOM付き)
#
# [ショートカット(.lnk)]
#  リンク先(T):
#   PowerShell.exe -NoLogo -NoExit -ExecutionPolicy RemoteSigned -File "%USERPROFILE%\Desktop\cdLiteralPath[].ps1"
#  作業フォルダー(S):
#   ""
# [SendToフォルダ]
#  %APPDATA%\Microsoft\Windows\SendTo

Set-StrictMode -Version Latest

if ($args.length -ne 0) {
  Set-Location -LiteralPath (Split-Path -LiteralPath $args[0])
}