Jak skasować plik przy pomocy skryptu .js?


(sexy69bis) #1

Mam taki skrypt:

var sFile = “B:\TEMP\info.txt”;
var hEditWnd = AkelPad.GetEditWnd();
var sEditFile = AkelPad.GetEditFile(0);
var hFont;
var aFont;

if (hEditWnd)
{
hFont = AkelPad.SendMessage(hEditWnd, 0x0031 /WM_GETFONT/, 0, 0);
aFont = GetFontArray(hFont, hEditWnd);
sEditFile = AkelPad.GetEditFile(0);

AkelPad.WriteFile(sFile, sEditFile + “\r\n”, -1, 1250 /nCP/, 0 /bBOM/, 0 /flags/);
AkelPad.WriteFile(sFile, aFont[4] + “\r\n”, -1, 1250, 0, 0x2 /WFF_APPENDFILE/);
// AkelPad.WriteFile(sFile, aFont[4] + “\r\n”, -1, 1250 /nCP/, 0 /bBOM/, 0 /flags/);

AkelPad.Exec(’“D:\AutoHotkey\AutoHotkeyU64.exe” “D:\WinCMD\AkelPad86\AHKFiles\plus.ahk”’);
}

function GetFontArray(hFont, hWnd)
{
var oSys = AkelPad.SystemFunction();
var nLFSize = 28 + 32 * 2; //sizeof(LOGFONTW)
var lpLF = AkelPad.MemAlloc(nLFSize);
var aFont = [];

oSys.Call(“Gdi32::GetObjectW”, hFont, nLFSize, lpLF);

nHeight = AkelPad.MemRead(_PtrAdd(lpLF, 0), 3 /DT_DWORD/); //lfHeight
aFont[4] = -nHeight;

AkelPad.MemFree(lpLF);

return aFont;
}

Chciałbym dopisać polecenie, aby po uruchomieniu tego skryptu na początku nastąpiło usunięcie
"B:\TEMP\info.txt" o ile istnieje. Co i gdzie należy wpisać?


(Fizyda) #2

Swoją drogą nie jest to związane z JavaScriptem jak sugeruje temat, a z AkelPad i ECMAScriptem.


(sexy69bis) #3

Brak możliwości wskazania co ma ten plik: deleteCurrentFile.js kasować


(Fizyda) #4

Ten skrypt to przykład jak kasować plik, on kasuje obecnie otwarty plik - czyli nie możesz go użyć w Twoim przypadku, ale możesz zobaczyć w jaki sposób plik jest kasowany i używając tych samych metod skasować swój plik podając jego ścieżkę i nazwę.


(sexy69bis) #5

Nie mam pojęcia gdzie tę ścieżkę podać?

zapisałem w ten sposób:
AkelPad.Call(“Scripts::Main”, 1, “deleteCurrentFile.js”, “B:\TEMP\info.txt”);

to ten skrypt chciał skasować zupełnie inny katalog(do tego ukryty) a nie plik.
Całe szczęście, że się spytał i podał co chce skasować.

Rozwiązałem to poprzez uruchomienia z tego skryptu pliku delete_info.bat

Dzięki za pomoc.

A ten ECMAScript jest nowocześniejszą odmianą Java czy poprzednik?


(krystian3w) #6

http://www.dreamincode.net/forums/topic/88318-deleting-files-in-vbscript/ zamiast męczyć się z
AkelPad i ECMAScriptem?


(Fizyda) #7

Nie ma nic wspólnego z Javą. ECMAScript to tylko opis języka i jego składni, bez żadnych bibliotek. JavaScript to implementacja ECMAScript z odpowiednimi bibliotekami, tak samo jak Node.js i wiele innych.


(sexy69bis) #8

A to już VBS, VBS mam opanowany,

Ale, jak już muszą korzystać z zewnętrznego programu
to prościej i krócej jest skasować za pomocą cmd. :grinning:


(sexy69bis) #9

To jest to.

if (oFSO.FileExists(sFile))
{
try
{
oFSO.DeleteFile(sFile, 1);
}
catch (oError)
{}

// if (oFSO.FileExists(sFile))
// AkelPad.MessageBox(0, “Can not delete. File is locked!”, WScript.ScriptName, 0);
// else
// AkelPad.MessageBox(0, “File has been deleted.”, WScript.ScriptName, 0);
}
//else
// AkelPad.MessageBox(0, “File does not exist!”, WScript.ScriptName, 0);