ComradG
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Ну что, товарищи! Проблема с созданием ярлыка из командной строки решилась (68%). Вероятно вам интересно знать каким обзом? Для начала приведу простой батник: Код: @echo off setlocal set verify=reg query hkcu\software\far 2>nul %verify% > nul if %errorlevel%==1 ( echo There are nor Far items. goto:eof ) else if %errorlevel%==0 ( echo Right, there are Far items. goto:eof ) endlocal exit /b | Да, верно! несколько не по сабжу. Но приглядитесь внимательней к третьей строчке. Все мы прекрасно знаем, что в качестве переменной можно создавать не только фиксированное значение, скажем, путь или файл, но и некоторое действие. А теперь перечитайте мой пост, где я описывал создание ярлыка с помощью PowerShell: по сути там создается переменная оснастки WSHShell. Теперь, внимание, черный ящик. Пам-пам-пара-па-па-пам, пара-па-па-па-па-пам!.. Если мы несколько извра... эээээ... скажем, просто попытаемся обратиться к WSHShell, используя синтаксис чем-то схожий с vbs, который, как выянилось, командный интерпретатор перемалывает за милую душу, то получим то, что лежит в черном ящике. (То бишь ярлык). Теперь о багах и почему я не привожу "отработанный" батник? Батник не стабилен, и в свободное от работы время я все еще занят тем, что пытаюсь пофиксить в нем баги, а не выкладываю потому, что на форуме достаточно таких, кто через копипаст рисует батники и не задумывается об их содержимом (простите, если кого обидел, но мне уже были предъявы на одной из прочих ветвей форума). Отнеситесь с пониманием, свои наработки от вас я укрывать не намерен. На последок - имитация тулзы now.exe из набора Windows Server 2003 Resource Kit: Код: @echo off setlocal set now=%time:~0,2%:%time:~3,2%:%time:~-5,2% for /f "tokens=1,2,3 delims=." %%i in ('date /t') do ( set day=%%i set mon=%%j set yer=%%k ) if %mon% == 01 ( set mon=Jan ) else if %mon% == 02 ( set mon=Feb ) else if %mon% == 03 ( set mon=Mar ) else if %mon% == 04 ( set mon=Apr ) else if %mon% == 05 ( set mon=May ) else if %mon% == 06 ( set mon=Jun ) else if %mon% == 07 ( set mon=Jul ) else if %mon% == 08 ( set mon=Aug ) else if %mon% == 09 ( set mon=Sep ) else if %mon% == 10 ( set mon=Oct ) else if %mon% == 11 ( set mon=Nov ) else if %mon% == 12 ( set mon=Dec ) echo %mon% %day% %now% %yer% endlocal exit /b | Думаю, можно использовать в качестве примера обработки данных времени. |