非常に奇妙なエラーがあります。いくつかのファイルを 1 つのフォルダーにコピーして抽出するスクリプトを作成しましたが、その前に、次のように dir / old ファイルを削除します。
SET destinationFolder=C:\MyFolder
IF EXIST %destinationFolder% (
ECHO rd %destinationFolder% /S /Q
rd %destinationFolder% /S /Q
IF %errorlevel% == 0 ( ECHO --^> SUCCEED ) ELSE ( ECHO --^> FAILED & set /a errorCount+=1 & ECHO %errorlevel% )
) ELSE ( ECHO --^> SUCCEED: No files existent )
これは、私が管理者として操作している場合はこれまでのところ機能しますが、管理者でない場合は期待できません。
管理者以外のシェルを開いて最初にバッチを実行すると (ファイルが存在しません)、同じシェルで繰り返し実行しても (同じバッチのファイルが存在します)、正常に動作します。
しかし、別の/新しい非管理者シェル(以前のシェルはもう実行されていません)を開いてスクリプトを実行すると(他のバッチの古いファイルが存在します)、最初にディレクトリが存在するかどうかを確認してもエラーレベル2が返されます.
そして、「最も面白い」ことは、rd %destinationFolder% /S /Q
バッチ内で機能しなかった同じシェルでコマンドを実行すると、正常に機能することです!