Страница 1 из 1

Меню Запуск - переименование файла на сетевом диске

Добавлено: Вс май 13, 2012 13:41
LA_
Подскажите, плз, как добавить в меню Запуск команду для переименования выделенного файла, который находится на сетевом диске, в cover.jpg?

Пытался сделать так -

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

Команда: ren
Параметры: "%p%n" cover.jpg
Путь запуска: (пусто)
Выдает сообщение, что файл не найден (на локальном диске, кстати, та же ошибка). Пробовал в путь запуска добавлять %p, в параметры - слеш между %p и %n - не помогает.

Просто в командной строке что-то типа:

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

C:\Windows>ren "\\nas\music\_Саундтреки\2002 - Бригада\01.jpg" "cover.jpg"
срабатывает корректно.
Но при старте выдается сообщение:
"\\nas\music\_Саундтреки\2002 - Бригада"
Указанный путь был использован при запуске CMD.EXE в качестве текущей папки.
CMD.EXE не поддерживает пути UNC. По умолчанию выбрана системная папка Windows.
Microsoft Windows [Version 6.1.7601]

Добавлено: Вс май 13, 2012 13:50
Mellomann
а чем не устраивает "cm_RenMov" вместо "ren"?

Добавлено: Вс май 13, 2012 13:57
MVV
Mellomann,
Отсутствием поддержки параметров.


LA_,
ren - это команда командного интерпретатора, а не независимая программа. С кнопки нужно запускать её через командный интерпретатор cmd.exe:

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

Команда: %SystemRoot%\System32\cmd.exe
Параметры: /c ren %P%N cover.jpg
Путь запуска: %SystemRoot%
Путь запуска нужно указывать абсолютно любой локальный, чтобы cmd.exe не ругался, что его запустили с сетевого пути.

Добавлено: Вс май 13, 2012 14:27
LA_
Да, было у меня подозрение, что проблема с ren.

Спасибо!

Добавлено: Вс май 13, 2012 14:30
Flasher
MVV
Путь запуска можно вообще не указывать, и в поле "Команда" лучше писать %comspec% .

Добавлено: Пн май 14, 2012 10:28
MVV
Flasher писал(а):MVV
Путь запуска можно вообще не указывать, и в поле "Команда" лучше писать %comspec% .
Путь запуска указывать обязательно (я об этом говорил), иначе тотал будет текущий путь в панели использовать как путь запуска, и при запуске из сетевой папки командный интерпретатор будет ругаться, что не поддерживает UNC-пути (за примером фразы дальше первого поста темы ходить не надо). А про %comspec% - да, можно.

Добавлено: Пн май 14, 2012 22:14
Flasher
MVV писал(а):я об этом говорил
Ты говорил
MVV писал(а):Путь запуска нужно указывать абсолютно любой локальный
MVV писал(а):иначе тотал будет текущий путь в панели использовать как путь запуска
Тотал - не будет, если уже указан путь в поле "Команда". А он указан в %comspec%.
Да и потом, cover.jpg откуда должен читаться, кроме как не из активной панели :?:
MVV писал(а):А про %comspec% - да, можно
Не просто "можно", а рекомендуется. Мало ли, где там ещё cmd окажется.

Добавлено: Вт май 15, 2012 00:37
CaptainFlint
Flasher писал(а):Тотал - не будет, если уже указан путь в поле "Команда". А он указан в %comspec%.
Это не так. Даже если в поле "Команда" указан полный путь, то текущим путём для создаваемого процесса будет задан тот, который открыт в активной файловой панели. Легко проверить, создав кнопку, запускающую c:\windows\system32\cmd.exe, "Путь запуска" оставить пустым, перейти в панели куда-нибудь на сетевой ресурс и нажать кнопку. Откроется консоль с сообщением:

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

"\\127.0.0.1\Shared"
Указанный путь был использован при запуске CMD.EXE в качестве текущей папки.
CMD.EXE не поддерживает пути UNC. По умолчанию выбрана системная папка Windows.
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

C:\WINDOWS>_
Особенно пикантные результаты от подобной подмены текущего пути можно получить при запуске скрипта, автоматически удаляющего или перезаписывающего всякие файлы в текущем каталоге…

Добавлено: Вт май 15, 2012 10:09
MVV
CaptainFlint писал(а):Особенно пикантные результаты от подобной подмены текущего пути можно получить при запуске скрипта, автоматически удаляющего или перезаписывающего всякие файлы в текущем каталоге…
Но если UAC настороже, и тотал не под админом, всё обойдётся. :D