SameDir

Название SameDir
Имя файла (*.txt) SameDir.txt
Описание Открывает текущую директорию, но на другом диске
Автор Вахмурка
Параметры "путь", "диск"
Вызываемые плагины file, win, miscplugin
Иконка зависит от диска
Версия 1.0
Дата обновления 12.07.2010
args Path, Where
local Source = Path[0, 2]
local Len = length(Path)
local Source, Target
local Str, Dir, i
static Disks = file.alldrives
static Quote = esc(?+\"+, ?+\+)
local Num = line(Disks, 0)
flag set 1

for(i = 1; i <= Num; i++)
	Str = line(Disks, i)
	if(Str == Source) do
		flag clear 1
		Dir = slice(Path, 3 - Len)
		break
	endif
endfor

if(pproflag(1)) do
	messagebox("ok error", "Current drive not found", "SameDir Script")
	quit
endif

local hwnd = win.handle("c=TTOTAL_CMD")
local Exepath = win.exepath(hwnd)

Str = ifelse(miscplugin.is_int(Where), line(Disks, i + Where), Where ++ ":\" ) ++ Dir

if(not validpath(Str)) do
	messagebox("ok error", "Invalid path: " ++ Str, "SameDir Script")
	quit
endif

do(Exepath, "/O /S /L=" ++ Quote ++ Str ++ Quote)

Комментарии:

Все просто: если текущим путем является c:\path, то скрипт осуществляет переход к пути d:\path, или f:\path, то есть к тому же пути, но на другом диске. Разумеется, если такой путь существует.

Первым параметром может быть "%P", "%T" или произвольный путь в явном виде. Второй параметр может принимать числовое или символьное значение. Число осуществляет абсолютный переход: отрицательное число - к предыдущему (по алфавиту), положительное - к следующему. Допустим, если текущий путь d:\dir1\dir2, то скрипт с параметрами ("%P", 2) сделает текущим путь f:\dir1\dir2. Или можно задать диск в явном виде, скажем, строка параметров ("%T", "g") сменит текущий путь на g:\dir1\dir2, если путь в панели-приемнике любой_диск:\dir1\dir2.


На главную Все о Total Commander PowerPro Все скрипты