1

Windows 7 では、bat ファイルが作成されました。

rem set UD_LOG_FILE_PATH=%temp%\defrag_native.log
子:
cd\Windows\System32
udefrag.exe --optimize-mft C:
udefrag.exe -o C:
一時停止

bat ファイルをダブルクリックすると、正常に実行されます。ただし、bat ファイルは、実行中のプログラムから呼び出されるように作成されています。プログラムがbatファイルにシェルアウトすると、次のエラーが生成されます:

「C:\Windows\System32\udefrag.exe」は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されません。

呼び出しは、VB6 の Shell を使用して行われます。さまざまなことが試みられました。最初にbatファイルが直接呼び出され、次にC:\Windows\System32\cmd.exe /c、次にC:\Windows\SysWOW64\cmd.exe /cで呼び出されました。すべて同じ結果になります。bat ファイルは実行されますが、bat ファイル内の exe ファイルは実行されません。ただし、直接実行すると、bat ファイルは問題なく動作します。助けてください。ありがとう

4

2 に答える 2

1

Google によると、udefrag.exe はサードパーティ プログラムです。c:\windows\system32 にある場合はパス上にあり、バッチ ファイルの最後の 3 行のみが必要です。最初にこれを試して、権限の昇格が必要かどうかを確認してください。UAC をオフにしている場合は、テストのためにオンに戻します。VB プログラムに適切な権限がない可能性があります。

@echo off
udefrag.exe --optimize-mft C:
udefrag.exe -o C:
pause
于 2013-09-16T23:45:31.677 に答える