私は完全に機能し、実行する非常にpowershellスクリプトを持っています:
Param(
[string]$fileName
)
echo "Woo I opened $fileName"
コマンドラインで実行すると、機能します。
my-script.ps1 .\somefile
戻り値:
Woo I opened somefile
関連付けたいmy-script.ps1
特定のファイルタイプ。 「アプリケーションから開く」でこれを実行しようとしていますが、
ファイルの種類をPowershellスクリプトに関連付けるにはどうすればよいですか?
一般的なファイルタイプの関連付けを探してここに来た私のような人のために、私はこの関数を使用することになりました。
Function Create-Association($ext, $exe) {
$name = cmd /c "assoc $ext 2>NUL"
if ($name) { # Association already exists: override it
$name = $name.Split('=')[1]
} else { # Name doesn't exist: create it
$name = "$($ext.Replace('.',''))file" # ".log.1" becomes "log1file"
cmd /c 'assoc $ext=$name'
}
cmd /c "ftype $name=`"$exe`" `"%1`""
}
私は @ Ansgar Wiechersの答え からの適切な引用に苦労しましたが、最終的にそれを正しく理解しました:)
これが@Matthieuの@Ansgar Weicharの素晴らしいリミックスの私のリミックスです。
Matthieu'sは実行可能ファイル用に設定されており、OPで説明されているのと同じ理由で、PowerShellスクリプトでは機能しません。
Function Set-FileAssociationToPowerShellScript($extension, $pathToScript) {
# first create a filetype
$filetype = cmd /c "assoc $extension 2>NUL"
if ($filetype) {
# Association already exists: override it
$filetype = $filetype.Split('=')[1]
Write-Output "Using filetype $filetype"
}
else {
# Name doesn't exist: create it
# ".log.1" becomes "log1file"
$filetype = "$($extension.Replace('.', ''))file"
Write-Output "Creating filetype $filetype ($extension)"
cmd /c "assoc $extension=$filetype"
}
Write-Output "Associating filetype $filetype ($extension) with $pathToScript.."
cmd /c "ftype $filetype=powershell.exe -File `"$pathToScript`" `"%1`""
}
私はあなたがWindows UIからそれを行うことができないと思います。
ここでの目標は、タイプをpowershell.exeに関連付けることです。
これをする
Regedit.exe
を起動します。 //免責事項:Windowsレジストリを編集しています。 こちらは虎です.<extension>
という名前のキーを作成します。 * .zbsを関連付ける場合-キーを作成します.zbs
zbsfile
のような値に設定します-これは、拡張子をファイルタイプにリンクする参照です。zbsfile
というキーを作成します-これはあなたのファイルタイプですzbsfile Shell open command
command
の下で、(デフォルトの)値を次のように設定します。powershell.exe -File "C:\path\to your\file.ps1" "%1"
うまくいくはずです。
編集:または(クレイジーなアイデア)、powershell.exe -File "C:\path\to your\file.ps1" "%%1"
だけを実行してbatファイルを作成し、Windows UIで選択します...