Обсуждение темы "Обмен кнопками"

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

HA3APET
Сообщения: 151
Зарегистрирован: Пн фев 22, 2010 05:43

Сообщение HA3APET »

ask-rus писал(а):Имеем скрипт для создания ярлыка на рабочий стол для текущего пользователя:
<…>
Необходимо улучшить скрипт для создания ярлыков для нескольких выделенных в TC файлов и папок.
Это не главное, надо его усовершенствовать, так что бы в свойствах lnk ещё и рабочая папка была прописана, иначе имеем кучу разнообразных глюков. То есть можно считать такие lnk не рабочими, а следовательно и скрипт.
В усовершенствованном скрипте Batya, тот же косяк.

У меня lnk на раб стол создаются так, и рабочая папка естественно прописывается.

Код: Выделить всё

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\nircmdc.exe
shortcut %P%N "~$folder.desktop$" "%O"
%COMMANDER_PATH%\Icons\lnk.ico
Создать ярлык на рабочем столе файла или папки под курсором
-1
Но к сожалению для одного файла под курсором, а не для выделенных файлов. Может можно усовершенствовать?

[mod="CaptainFlint"]Оверквотинг удалён.[/mod]
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

HA3APET, попробуй

Код: Выделить всё

@echo off &chcp 1251 >nul
rem Создание ярлыков на рабочем столе для выделенных файлов/папок
rem Используется NirCmd
rem Параметры: %L

setlocal enableextensions
for /f "usebackq delims=" %%n in ("%~1") do call :n "%%n" "%%n."
goto :eof

:n
set "n=%~1"
if "%n:~-1%"=="\" (
"%COMMANDER_PATH%\nircmdc.exe" shortcut "%n:~0,-1%" "~$folder.desktop$" "%%~n2"
) else "%COMMANDER_PATH%\nircmdc.exe" shortcut %1 "~$folder.desktop$" "%%~n1"
Не проверял
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

HA3APET писал(а):надо его усовершенствовать, так что бы в свойствах lnk ещё и рабочая папка была прописана
ОК. Сделал. Так подойдёт?
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

Batya писал(а):ОК. Сделал. Так подойдёт?
Рабочая пишется, подойдет.

Имеем кнопки:

Создать каталог > Новая папка, Новая папка (2) и т.д.
Создать файл > Текстовый документ.txt, Текстовый документ (2).txt и т.д.
Создать ярлык на Рабочий стол > Файл.lnk

Для завершения картины необходимы ещё две:

1. Бэкап выделенных в TC файлов (в текущий каталог, копии файлов с расширением *.bak), где-то была... Если знаете, ткните.
2. Копии выделенных в TC файлов и папок (в текущий каталог, Файл.txt > Копия Файл.txt, Каталог > Копия Каталог, расширения у файлов не меняются).
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
HA3APET
Сообщения: 151
Зарегистрирован: Пн фев 22, 2010 05:43

Сообщение HA3APET »

Batya
Спасибо, всё отлично работает.
Аватара пользователя
LocKtaR-o-DarK
Сообщения: 349
Зарегистрирован: Пт авг 12, 2005 04:20
Откуда: Москва
Контактная информация:

Сообщение LocKtaR-o-DarK »

ask-rus писал(а):1. Бэкап выделенных в TC файлов (в текущий каталог, копии файлов с расширением *.bak), где-то была... Если знаете, ткните.
тык
Изображение    Изображение    Изображение
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

LocKtaR-o-DarK
Простой вариант:

Код: Выделить всё

TOTALCMD#BAR#DATA
cmd /c  title Копия... &
copy %S1 %S1.bak
totalcmd.exe,9
Создать бекап файла
 
1
Более продвинутый вариант, позволяет копировать файл под курсором с любыми атрибутами и т.д.:

Код: Выделить всё

TOTALCMD#BAR#DATA
cmd /c title Копия... &
(echo f|xcopy/y/c/h/r/k/g/z %S1 "%O_.%E")
totalcmd.exe,9
Копия оригинала
 
1
Для группы выделенных файлов:

Код: Выделить всё

TOTALCMD#BAR#DATA
cmd /c title Копия... &
for %%U in (%S) do echo f|xcopy/y/c/h/r/k/g/z %%U "%%~nU_%%~xU"
totalcmd.exe,9
Копия оригинала
 
1
Это то, что у тебя есть.
Нужна кнопка бэкапа группы выделенных файлов (последний вариант), но с дополнительным расширением *.bak (первый вариант), а не "_" после имени. В общем, совместить 1 и 3 коды.
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Пожалуйста, в специальную тему:

Поточный бэкап файлов - папок
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

Вернемся к MultiUPX.bat от MVV:

Код: Выделить всё

@echo off
:loop
if -%1==- pause && cls && goto :EOF
"%COMMANDER_PATH%\SOFT\UPX\upx.exe" --best --lzma --compress-icons=0 %1
shift
goto loop
Как быть с пробелами в именах? Сегодня попался-таки такой экзешник - не пакует.
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Аватара пользователя
LocKtaR-o-DarK
Сообщения: 349
Зарегистрирован: Пт авг 12, 2005 04:20
Откуда: Москва
Контактная информация:

Сообщение LocKtaR-o-DarK »

ask-rus
хорошо, распишу подробнее:
добавление расширения .bak к имени файла с расширением для выделенных объектов в панели

Код: Выделить всё

TOTALCMD#BAR#DATA
cmd /c title Копия... &
for %%U in (%S) do echo f|xcopy/y/c/h/r/k/g/z %%U "%%~nU_%%~xU.bak"
totalcmd.exe,9
Копия оригинала

1
только к имени файла

Код: Выделить всё

TOTALCMD#BAR#DATA
cmd /c title Копия... &
for %%U in (%S) do echo f|xcopy/y/c/h/r/k/g/z %%U "%%~nU.bak"
totalcmd.exe,9
Копия оригинала

1
работа с UPX, проблем с именами не было...
Изображение    Изображение    Изображение
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

LocKtaR-o-DarK
Работают. Первый вариант - мой вариант. Неплохо бы перенести оба в копилку.
LocKtaR-o-DarK писал(а):работа с UPX, проблем с именами не было...
Там файл под курсором, а тут пакетная упаковка всех выделенных.

Пытался переделать и ничего не вышло, не могу понять принцип для кнопки:
Файл.ico > Копия Файл.ico
Копия Файл.ico > Копия Копия Файл.ico
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

Дошло:
%%~nU - имя;
%%~xU - расширение.
Получил:

Код: Выделить всё

TOTALCMD#BAR#DATA
cmd /c title Копия... &
for %%U in (%S) do echo f|xcopy/y/c/h/r/k/g/z %%U "Копия %%~nU%%~xU"
totalcmd.exe,9
Копия файла

1
-1
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

ask-rus
Модификации переменных вида %~... описаны в спрвке к команде forКстати, это верно и для обработки параметров командной строки %1... кроме %*
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

Имеем кнопку создания списка файлов в текущую панель с дозаписью:

Код: Выделить всё

TOTALCMD#BAR#DATA:
%comspec%
/c type %L>>"filelist.lst"
shell32.dll,134
Создать список файлов c дозаписью

1
-1
Необходимо, чтобы очередная дозапись происходила после пропущенной строки, пример:
filelist.lst писал(а):d:\Pictures\Full HD_1\00040_flying_1920x1200.jpg
d:\Pictures\Full HD_1\00093_baldeagle_2560x1600.jpg

d:\Pictures\Full HD_1\00144_rose_2560x1600.jpg
d:\Pictures\Full HD_1\00146_whiterose_2560x1600.jpg
d:\Pictures\Full HD_1\00227_blingbling_2560x1600.jpg

d:\Pictures\Full HD_1\00235_thebluemarble_1920x1200.jpg
d:\Pictures\Full HD_1\00241_daito_1600x1200.jpg
d:\Pictures\Full HD_1\00244_tracks_1920x1200.jpg
d:\Pictures\Full HD_1\00261_smartos_2560x1600.jpg
Таким образом легче ориентироваться по спискам.
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

ask-rus
Параметры:

Код: Выделить всё

/c (if exist "filelist.lst" echo,>>"filelist.lst")&type %L>>"filelist.lst"
Последний раз редактировалось Tol!k Сб авг 28, 2010 18:10, всего редактировалось 1 раз.
Ответить