http://mrxray.on.coocan.jp/Delphi/Others/009.htm
やこちらの「Win8.1上のヘルプについて」をきちんと読んだつもりなのですが、うまくいきません。
コマンドプロンプトを管理者権限で起動し、以下のような結果が出力されました。
また、C:\000の中にパッチファイルとWindows8.1-KB917607-x64.msuが置いてあります
C:\windows\system32>cd ..\..\000
C:\000>KB917607-Fix.cmd
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
Done.
Press any key to Exit
カテ違いかとは思われますが、ご回答いただけると幸いです。
KB917607-Fix.cmd をエディタで開いて、先頭の @echo off の1行を削除したらどんな表示が出ますか?
ユーザ名は@@@@に変えてあります
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
C:\windows\system32>cd ..\..\000
C:\000>KB917607-Fix.cmd
C:\000>C:\windows\system32\reg.exe query "HKU\S-1-5-19" 1>nul 2>&1 || goto :e
of
C:\000>set arch=x86
C:\000>C:\windows\system32\reg.exe query "hklm\software\microsoft\Windows NT\cur
rentversion" /v buildlabex | find /i "amd64" 1>nul && set arch=x64
C:\000>cd /d "C:\000\"
C:\000>if not exist Windows8.1-KB917607-x64.msu (
echo Windows8.1-KB917607-x64.msu was not found in the current folder
echo.
echo Press any key to Exit
pause 1>nul
exit
)
C:\000>if not exist "C:\windows\servicing\packages\*Winhelp*.mum" (Windows8.1-KB
917607-x64.msu /quiet /norestart )
C:\000>mkdir .\temp
C:\000>expand.exe -f:*Windows*.cab Windows8.1-KB917607-x64.msu .\ 1>nul
C:\000>expand.exe -f:* Windows8.1-KB917607-x64.cab .\temp 1>nul
C:\000>del /f /q Windows8.1-KB917607-x64.cab 1>nul
C:\000>if /I "x64" == "x86" (
copy /y temp\x86_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.16398_none_
bd9f041c2504e85c\ftlx0411.dll C:\windows\system32
copy /y temp\x86_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.16398_none
_bd9f041c2504e85c\ftlx041e.dll C:\windows\system32
copy /y temp\x86_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.16398_none
_bd9f041c2504e85c\ftsrch.dll C:\windows\system32
icacls "C:\windows\winhlp32.exe" /save "C:\Users\@@@@\AppData\Local\Temp\AclF
ile" 1>nul
takeown /f "C:\windows\winhlp32.exe" 1>nul
icacls "C:\windows\winhlp32.exe" /grant *S-1-5-32-544:F 1>nul
copy /y temp\x86_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.16398_none
_bd9f041c2504e85c\winhlp32.exe C:\windows
icacls "C:\windows\winhlp32.exe" /setowner "NT Service\TrustedInstaller" 1>nul
icacls "C:\windows" /restore "C:\Users\@@@@\AppData\Local\Temp\AclFile" 1>nu
l
del /f /q "C:\Users\@@@@\AppData\Local\Temp\AclFile" 1>nul
)
C:\000>if /I "x64" == "x64" (
copy /y temp\amd64_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.16398_non
e_19bd9f9fdd625992\ftlx0411.dll C:\windows\system32
copy /y temp\amd64_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.16398_no
ne_19bd9f9fdd625992\ftlx041e.dll C:\windows\system32
copy /y temp\amd64_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.16398_no
ne_19bd9f9fdd625992\ftsrch.dll C:\windows\system32
copy /y temp\x86_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.16398_none
_bd9f041c2504e85c\ftlx0411.dll C:\windows\syswow64
copy /y temp\x86_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.16398_none
_bd9f041c2504e85c\ftlx041e.dll C:\windows\syswow64
copy /y temp\x86_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.16398_none
_bd9f041c2504e85c\ftsrch.dll C:\windows\syswow64
icacls "C:\windows\winhlp32.exe" /save "C:\Users\@@@@\AppData\Local\Temp\AclF
ile" 1>nul
takeown /f "C:\windows\winhlp32.exe" 1>nul
icacls "C:\windows\winhlp32.exe" /grant *S-1-5-32-544:F 1>nul
copy /y temp\amd64_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.16398_no
ne_19bd9f9fdd625992\winhlp32.exe C:\windows
icacls "C:\windows\winhlp32.exe" /setowner "NT Service\TrustedInstaller" 1>nul
icacls "C:\windows" /restore "C:\Users\@@@@\AppData\Local\Temp\AclFile" 1>nu
l
del /f /q "C:\Users\@@@@\AppData\Local\Temp\AclFile" 1>nul
)
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
C:\000>rd /s /q .\temp 1>nul
C:\000>echo.
C:\000>echo Done.
Done.
C:\000>echo.
C:\000>echo Press any key to Exit
Press any key to Exit
C:\000>pause 1>nul
OSは64bit版なんですよね?
エラーメッセージから見るに、バッチファイルの37行目から51行目にあるcopyコマンドでエラーになっているようですねぇ…
37行目の"if /i "%arch%"=="x64" ("の次の行に"pause"のみの行を置いて、何かキーを押してくださいとい表示が出ている
(出るはずです)状態で、C:\000の下のtempの下に
amd64_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.16398_none_19bd9f9fdd625992
と
x86_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.16398_none_bd9f041c2504e85c
というフォルダ(やたら長いですが、"amd64_"および"x86_"で始まるフォルダの中では最後に来ているはず)ができているか、
その中に
winhlp32.exe
ftlx041e.dll
ftlx0411.dll
ftsrch.dll
があるかどうかを確かめてみてください。
# つか普通にexpandでmsu展開→cab展開で上記4ファイルを取り出してsystem32(amd64_からのファイル)とsyswow64(x86_からの
# ファイル)に上書きしてしまえばいいような
どちらにも4つのファイルは存在していました。
下二行はこの4つをそれぞれ
amd64_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.16398_none_19bd9f9fdd625992の中のものをsystem32に
x86_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.16398_none_bd9f041c2504e85cの中のものをsyswow64に上書きして
msuをインストールすればいいということですかね?
ちなみにOSはWin8.1の64bitであっています……
バッチファイルにもデバッガが欲しいですよねw なぜファイルコピーに失敗しているのか…
いやそもそもエラーになっているのがcopyコマンドなのかどうかもよくわからないし。
KB917607-Fix.cmdを見た限りでは、winhlp32.exe以外は単純にコピーしているだけで、
winhlp32.exeはACL(アクセス制御リスト)を一時的に保存しておいて、ファイルコピー後に
復元しているだけでした。なおmsuをインストールする必要はありません。
あ、こんなのがありますね。
【レビュー】編集やデバッグが簡単になるバッチファイル向け統合開発環境「VisualBat」 - 窓の杜
http://www.forest.impress.co.jp/docs/review/20140204_633694.html
そうなんですよね、全く知識のない自分にはなんでそこでエラーが出るのかさっぱりでして……
Helpも相変わらず見られないので自分だけでは手詰まりのところ
エラーの箇所は皆様のおかげでわかったのですが、解決策or別の方法が疎い自分では考えられないのでぜひともご教授いただけるとありがたいです
KB917607 ( WinHlp32.exe ) の記事を掲載している者です.
残念ですが,原因は分かりません,
以下の方法を試してみてはいかがでしょうか.
(1) 既にインストール済みの KB917607 ( WinHlp32.exe ) をアンインストール
(2) 以下から新しい KB917607 ( WinHlp32.exe ) をダウンロードしてインストールする
[Download Windows 8.1 for x64-Based Systems 用更新プログラム (KB917607) from Official Microsoft Download Center]
http://www.microsoft.com/ja-JP/download/details.aspx?id=47671
詳細については,修正,追加した記事を参考にしてください.
[新しい KB917607 ( WinHlp32.exe ) ファイルのダウンロード]
http://mrxray.on.coocan.jp/Delphi/Others/009.htm#03
返信が遅れて申し訳ございません。
KB917607が更新されていたのは知りませんでした。
内容が変わっているので失敗したのでしょうかね。
一度アンインストールして新しいものをインストールしたところ正しく動作いたしました。
大変親切にご教授くださったみなさま、ありがとうございました。
ツイート | ![]() |