Windowsで、書き込みができないリモートサーバーにまだ存在しないフォルダーを指すショートカットを作成しようとしています。
ショートカットを作成して「ターゲット」フィールドを上書きしようとしましたが、「OK」を押すと、ターゲットが見つからないためエラーが発生します。賞賛に値するが、私はそれを上書きしたい。
誰かがそれを行う方法を知っていますか?
必要に応じて(Python)をプログラムできますが、もっと簡単な解決策が存在するかどうか疑問に思いました。
これは不可能だと思います。試してみましたが、期待どおりに機能しませんでした。これが私がしたことです:
Optimum Xから ショートカット (注:直接ダウンロードリンク)をダウンロードします。
ショートカットを使用すると、コマンドラインからWindowsシェルリンク(ショートカット)を作成、変更、またはクエリできます。既存のショートカットのプロパティを.INI形式のテキストファイルにエクスポートできます。
次のコマンドを使用してショートカットを作成します(この段階ではC:\testfolder
は存在しませんでした)。
shortcut /F:example.lnk /A:C /T:C:\testfolder
Lnkファイルが作成され、すべての正しいプロパティがありますが、まだ機能していません。次に、C:\testfolder
を作成し、ショートカットを確認しました。 WindowsOpen Withダイアログが表示されますが、ショートカットとして正しく解決されません。
上記のコマンドを再度実行すると、lnkファイルが更新され、適切なショートカットとして機能するようになりました。
これが解決策の観点から役立つとは思えませんが、少なくともこれが簡単な方法では不可能であることを示唆する必要があります。
これを行う簡単な方法の1つは、代わりにエクスプローラーを使用するショートカットを作成することです。
たとえば、新しいショートカットを作成したところ、Windows7では「アイテムの場所」を尋ねられます。 WindowsXPではTargetと呼ばれていると思います。
ターゲット/場所として以下を入力してください。
Explorer <desired-dir>
誰かがショートカットを実行し、ディレクトリがそこにない場合、エクスプローラを開いてデフォルトのディレクトリに移動します。
ディレクトリがそこにある場合は、エクスプローラが開き、目的のディレクトリに正常に移動します。
Cygwinを使用している人のために、現在のユーザーのデスクトップにショートカットを簡単に作成するためのbashスクリプトを作成しました。
Optimuxショートカットに依存し、~/.bashrc
の一部です。
$ lnk "C:\fakepath\fakefile.xls"
function lnk #Create shortcut on Windows using Optimux bin
{
printf "\033c"
echo -e "This function allows you to create a shortcut (symbolic link) pointing to a non-existing file on MS Windows\nIt requires having 'Shortcut.exe' from Optimum X placed in System32\nPlease note you MUST single or double quote the shortcut path:\n\t.e.g:\tlnk \"C:\\MyFake\\Folder\\Pointingto\\anonexisting.file\""
if [ -z "$1" ]; then
echo -e "\nType the filename path and press [ENTER]"
read -p "Filepath : " filepath
else
filepath="$1"
fi
filepath=`cygpath "$filepath"`
filename=`basename "$filepath"`
dirpath=`dirname "$filepath"`
cmd="shortcut /F:\""$USERPROFILE"\\Desktop\\"$filename".lnk\" /A:C /W:\"`cygpath -w "$dirpath"`\" /T:\"`cygpath -w "$filepath"`\""
echo "$cmd"
eval "$cmd"
echo "File created on your Desktop"
}