© ウィンドウズスクリプトプログラマ - Windows Script Programmer 2023
pauseをcmdに変えると、どうなりますか。
先頭にcmdを入れると、
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
現在Windows 10 Pro使用中。
Windowsアップデート後、ある時期からbatコマンドが実行できなくなった。
bat内容は例で管理者モードWin修復コマンドです。
ーーーーーーーーーーーーーーーーーーーーーーーーー
@echo off
cd /d %~dp0
for /f "tokens=3 delims=\ " %%i in ('whoami /groups^|find "Mandatory"') do set LEVEL=%%i
if NOT "%LEVEL%"=="High" (
powershell -NoProfile -ExecutionPolicy unrestricted -Command "Start-Process %~f0 -Verb runas"
exit
)
rem
dism /online /cleanup-image /restorehealth
sfc /scannow
findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\sfcdetails.txt"
PAUSE
ーーーーーーーーーーーーーーーーーーーーーーーーーー
今まではbatクリックで動作していたが、Windowsアップデート後、
ある時期から様々なbatコマンドが実行できなくなった。
bat本体を通常実行、管理者モードで実行、ショートカットからプロパティで管理者モードで実行など色々試したが、
一瞬CMDが表示されて消えるだけです。
手動で管理者モードでCMDに打ち込むと正常に実行されます。
batだと動作しない様な仕様変更などWindowsアップデートであったのでしょうか?
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
質問作成者が受け入れた回答
© ウィンドウズスクリプトプログラマ - Windows Script Programmer 2023
pauseをcmdに変えると、どうなりますか。
先頭にcmdを入れると、
C:\WINDOWS\system32>echo %cmdcmdline%
"C:\WINDOWS\system32\cmd.exe"
C:\WINDOWS\system32>
C:\WINDOWS\system32>echo %%cd%%=%cd%
%C:\WINDOWS\system32%=C:\WINDOWS\system32
C:\WINDOWS\system32>
C:\WINDOWS\system32>echo %%*=%*
%%*=%*
C:\WINDOWS\system32>
C:\WINDOWS\system32>echo %%1=%1
%%1=%1
C:\WINDOWS\system32>
C:\WINDOWS\system32>echo %%2=%2
%%2=%2
C:\WINDOWS\system32>
C:\WINDOWS\system32>echo %%~d0=%~d0
%%~d0=%~d0
C:\WINDOWS\system32>
C:\WINDOWS\system32>pause
© ウィンドウズスクリプトプログラマ - Windows Script Programmer 2023
調査のため、
HKEY_CLASSES_ROOT\batfile\shell\runas\command
HKEY_CLASSES_ROOT\cmdfile\shell\runas\command
(既定) REG\_EXPAND\_SZ %SystemRoot%\System32\cmd.exe /C "%1" %\*
↓
/K
HKCRを変更するのではなく、HKCUに追加。
HKEY_CURRENT_USER\SOFTWARE\Classes\batfile\shell\runas\command
HKEY_CURRENT_USER\SOFTWARE\Classes\cmdfile\shell\runas\command
(既定) REG\_EXPAND\_SZ %SystemRoot%\System32\cmd.exe /K "%1" %\*
バッチの中身
echo %cmdcmdline%
echo %%cd%%=%cd%
echo %%*=%*
echo %%1=%1
echo %%2=%2
echo %%~d0=%~d0
pause
管理者として実行
本体場所
E:\ツール\環境\Batch_Script_to_Restart_Explorer\main_bat\★DISM.exe+sfc_scannow.bat
ショートカット作成場所
C:\Users\xxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\StartupTWO\★DISM.exe+sfc_scannow.bat
© ウィンドウズスクリプトプログラマ - Windows Script Programmer 2023
バッチファイルのパス名を出す。
隠す場合は同じ文字種で。