Страница 8 из 88

Добавлено: Пт авг 13, 2010 18:07
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]

Добавлено: Пт авг 13, 2010 21:09
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"
Не проверял

Добавлено: Пт авг 13, 2010 23:06
Batya
HA3APET писал(а):надо его усовершенствовать, так что бы в свойствах lnk ещё и рабочая папка была прописана
ОК. Сделал. Так подойдёт?

Добавлено: Сб авг 14, 2010 09:27
ask-rus
Batya писал(а):ОК. Сделал. Так подойдёт?
Рабочая пишется, подойдет.

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

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

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

1. Бэкап выделенных в TC файлов (в текущий каталог, копии файлов с расширением *.bak), где-то была... Если знаете, ткните.
2. Копии выделенных в TC файлов и папок (в текущий каталог, Файл.txt > Копия Файл.txt, Каталог > Копия Каталог, расширения у файлов не меняются).

Добавлено: Сб авг 14, 2010 09:51
HA3APET
Batya
Спасибо, всё отлично работает.

Добавлено: Сб авг 14, 2010 13:01
LocKtaR-o-DarK
ask-rus писал(а):1. Бэкап выделенных в TC файлов (в текущий каталог, копии файлов с расширением *.bak), где-то была... Если знаете, ткните.
тык

Добавлено: Сб авг 14, 2010 15:01
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 коды.

Добавлено: Сб авг 14, 2010 16:48
Tol!k
Пожалуйста, в специальную тему:

Поточный бэкап файлов - папок

Добавлено: Вт авг 17, 2010 17:11
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
Как быть с пробелами в именах? Сегодня попался-таки такой экзешник - не пакует.

Добавлено: Чт авг 19, 2010 13:37
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, проблем с именами не было...

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

Пытался переделать и ничего не вышло, не могу понять принцип для кнопки:
Файл.ico > Копия Файл.ico
Копия Файл.ico > Копия Копия Файл.ico

Добавлено: Пт авг 20, 2010 20:48
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

Добавлено: Сб авг 21, 2010 00:56
Serge Yolkin
ask-rus
Модификации переменных вида %~... описаны в спрвке к команде forКстати, это верно и для обработки параметров командной строки %1... кроме %*

Добавлено: Сб авг 28, 2010 15:57
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
Таким образом легче ориентироваться по спискам.

Добавлено: Сб авг 28, 2010 16:41
Tol!k
ask-rus
Параметры:

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

/c (if exist "filelist.lst" echo,>>"filelist.lst")&type %L>>"filelist.lst"