どうやら削除する前にそのフォルダにアクセスしていると失敗するみたいです。
これってどうやったら直るんでしょうか?ちなみに以下のスクリプトで再現できます。
////////////////////////////////////////////////////////// ;新規命令 ////////////////////////////////////////////////////////// ////////空ディレクトリ削除命令 ;p1=削除する空フォルダのフルパスが入っている文字列型変数 #module #uselib "kernel32.dll" #cfunc RemoveDirectory "RemoveDirectoryA" str #deffunc Func@_DeleteEmpDir str Func@_DeleteEmpDir_P1 ret=RemoveDirectory(Func@_DeleteEmpDir_P1) return #global //////// ////////////////////////////////////////////////////////// ;メインルーチン ////////////////////////////////////////////////////////// goto *mainA ;AかBいずれかを選択 ////////メインルーチンA(正常に削除できる) *mainA ;C:\にTestFolderを作成してから実行して下さい。 ;フォルダ削除 ParamStr1="C:\\TestFolder" Func@_DeleteEmpDir ParamStr1 end ////////メインルーチンB(削除できない) *mainB ;C:\にTestFolderフォルダを ;C:\TestFolderにtest.txtファイルを作成してから実行。 ;ファイル削除(これは問題なし) chdir "C:\\TestFolder" delete "test.txt" ;フォルダ削除(ここで失敗する) ParamStr1="C:\\TestFolder" Func@_DeleteEmpDir ParamStr1 end