- -
Ярлык для bat
(
http://forum.oszone.net/showthread.php?t=340723)
Ярлык для bat
Некоторые batники было бы удобно запускать ярлыком, но к сожалению не всегда они срабатывают из-за того, что меняются пути при запуске ярлыка.
Т.е. запуская сам batник все работает, запуская его через ярлык - нет.
Есть ли какое-нибудь универсальное решение для таких случаев??
|
Например этот bat сначала проверяет есть ли вокруг себя ярлык с таким же именем и если нет создает? Но это произойдет в момент запуска bat, а запускать его надо ярлыком, т.е. ярлык уже должен быть или контроль должен делать какой-то другой процесс постоянно запущенный или запущенный с момента создания определенного (по имени, например) bat.
При перемещении bat относительно ярлыка в пределах диска ярлык запустит этот bat, иначе вы и сами должны понять что надо создавать ярлык заново.
Теперь попробуйте еще раз уточнить задачу.
|
Цитата:
Цитата Sisin
Некоторые batники было бы удобно запускать ярлыком, но к сожалению не всегда они срабатывают из-за того, что меняются пути при запуске ярлыка.
Т.е. запуская сам batник все работает, запуская его через ярлык - нет. »
|
И здесь попробую стелепатировать :)
Рабочий каталог в ярлыке надо задать, для уверенной работы батника... это и будет %cd% для него, когда файлы будете на ярлык дропить :)
Ну, а если хочется, чтобы файлы складывались туда же, где они и находятся, то код сделайте таким:
Код:
@echo OFF
for %%i in (%*) do (
set "file=%%~nxi"
set "fld=%%~dpi"
call :sub
)
pause&exit /b
:sub
"C:\12\program.exe" /F "%file%" /D "%fld:~0,-1%" /T 2 /DW"
exit /b
:wink:
|
Цитата:
Цитата YuS_2
И здесь попробую стелепатировать »
|
Меня это уже пугает :D
Цитата:
Цитата YuS_2
Ну, а если хочется, чтобы файлы складывались туда же, где они и находятся, то код сделайте таким: »
|
Я потестил и не понял чем отличается от предложенного Вами ранее:
Код:
@echo OFF
for %%i in (%*) do (
"C:\12\" /F "%%~nxi" /D "%cd%" /T 2 /DW"
)
exit
И тот и другой вроде работают одинаково.
|
Цитата:
Цитата Sisin
не понял чем отличается »
|
Чтобы было понятно в чем отличие:
Код:
@echo off
echo CD: "%cd%"
for %%i in (%*) do (
set "file=%%~nxi"
set "fld=%%~dpi"
call :res
)
pause&exit /b
:res
echo folder: "%fld:~0,-1%"
echo file: "%file%"
exit /b
- пробуйте дропнуть файл из другого каталога, отличного от того, где лежит пакетник, непосредственно на сам файл сценария и на ярлык для этого сценария.
|
Только если я делаю батник:
Код:
@echo OFF
for %%i in (%*) do (
set "file=%%~nxi"
set "fld=%%~dpi"
call :sub
)
pause&exit /b
:sub
"C:\12\program.exe" /F "%file%" /D "%fld:~0,-1%" /T 2 /DW"
exit /b
и кладу его по адресу D:\35\1.bat, делаю ярлык на рабочий стол и закидываю на него файл с подключенной флешки, батник не срабатывает. (Я выставлял рабочий каталог на ярлыке и оставлял по умолчанию)
|
Цитата:
Цитата Sisin
и кладу его по адресу D:\35\1.bat, делаю ярлык на рабочий стол и закидываю на него файл с подключенной флешки, батник не срабатывает. »
|
Повторил алгоритм с батником из этого поста - всё срабатывает и пути показывает верные.
Тут моей телепатии уже не хватает, требуются подробности. :)
Он совсем не запускается или запускается и вылетает или что?
|
Путем пальцетыка я понял, что проблема в set "file=%%~nxi".
Заменив на set "file=%%~dpi%%~nxi" все заработало.))))))
|
Время: 16:33.
© OSzone.net 2001-