client.exeの実行ファイルがあります。このファイルは "autoupdate-client.exe。 "で始まるファイルで置き換えられます。たとえば、client.exeが実行され、autoupdate-client。 。exeファイルは同じフォルダに、プログラムがクライアント。を削除し、次のコードは、未亡人で実装されてCLIENT.EXEする自動更新 - クライアント。名前を変更します次のとおりです。TCLのファイル属性を使用してファイルへのアクセス権を付与
if {[regexp -nocase \
"autoupdate-(.*)" \
[file tail [info nameofexecutable]] - binaryname]} {
after 5000
set dirname [file dirname [info nameofexecutabe]
set targetname [file join $dirname $binaryname]
catch {vfs::mk4::Unmount exe [info nameofexecutable]]
file copy -force [infor nameofexecutable] $targetname
catch {file attributes $targetname -permission 0755}
exec $targetname {*}$argv &
exit 0
} else {
set dirname [file dirname [infor nameofexecutable]
set targetname [file join $dirname \
"autoupdate-[file tail [info nameofexecutablle]]}\
]
if {[file exists $targetname]} {
後の5000 キャッチ{ファイルは削除します - force $ targetname}
次のエラーが発生します。
error copying "autoupdate-client.exe" to "client.exe": permission denied
while executing "
file copy -force [info nameofexecutable] $targetname"
ファイル属性$ targetname -permission 0755でエラーが発生している可能性があります。私はWindows用で
すべての '.exe'ファイルは、レジストリに設定されていないと言うポリシーがない限り、実行可能とみなされます。また、実行可能ファイルは(通常は)読み取り専用でロックされており、一部のアプリケーションやサービス(ウイルス対策ソフトウェアなど)でも多くのことに干渉することがあります。それは面倒で複雑です。 –