PDA

Показать полную графическую версию : Переименовать и запустить


Dodakaedr
18-07-2014, 20:05
Здравствуйте, дайте, пожалуйста, пример вот такого батника: имеется файл *.dat в папке Арр теперь его надо переименовать в *.exe и запустить.....вот и все, вроде не сложно, но не знаю как сделать.

Iska
19-07-2014, 00:04
Dodakaedr, «Арр» или «App»:

http://i.imgur.com/2Ds2hvc.png

?! Я решил, что таки «App», а не «Арр».

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=" %%i in (
`dir /b /a:-d "App\*.dat" 2^>nul`
) do (
ren "App\%%~i" "%%~ni.exe"
"App\%%~ni.exe"
goto :Out
)

:Out

endlocal
exit /b 0

Dodakaedr
19-07-2014, 12:43
Iska, Спасибо! Но оказалось этот способ не работает, так как запускается командная строка. Можно как-то указать запуск именно на dat файл и при этом запретить запуск командной строки? И как вы так определили какой именно App нужен?

Georgio
19-07-2014, 13:30
Можно как-то указать запуск именно на dat файл и при этом запретить запуск командной строки? »

@echo off
set pathext=%pathext%;.dat
for %%i in ("App\*.dat") do start "" "%%i"& exit /b

Dodakaedr
19-07-2014, 17:22
Georgio, Спасибо! Но командная строка по прежнему запускается... надо наверное сделать следующее: запустить dat файл а с ним автоматом запускается командная строка, и вот эту самую строку запустить в скрытом режиме а потом когда запуститься программа закрыть строку. Реально такое сделать?

Iska
19-07-2014, 18:50
Dodakaedr, выкладывайте Ваш «*.dat», упаковав его в архив.

И как вы так определили какой именно App нужен? »
На картинке видно.

Dodakaedr
19-07-2014, 20:15
На картинке видно. »
Вижу! И что оно такое: программа, сервис???
выкладывайте Ваш «*.dat», упаковав его в архив. »
Вот Ссылка (http://rghost.ru/private/56984559/dc3e8eb37475475d95bb88890f83144d)

Iska
19-07-2014, 23:19
Вижу! И что оно такое: программа, сервис??? »
Вы писали, что это имя папки:
в папке Арр »
при этом обозвали её в тексте по-русски «Арр». Я же решил, что сие навряд ли может быть, и имя папки скорее всего должно быть на латыни — чему, собственно, и служит подтверждением имя папки на латыни в выложенном архиве.

Вот Ссылка »
У меня мой код (http://forum.oszone.net/post-2378211.html#post2378211) отработал корректно, переименовав «App\WinUtilities.dat» в «App\WinUtilities.exe» и запустив его. При этом внутри «App» была создана структура каталогов/файлов в папке «WinUtilities». Аналогичным образом отработал и код (http://forum.oszone.net/post-2378367.html#post2378367) коллеги Georgio.

Но командная строка по прежнему запускается... надо наверное сделать следующее: запустить dat файл а с ним автоматом запускается командная строка, и вот эту самую строку запустить в скрытом режиме а потом когда запуститься программа закрыть строку. »
Окно консоли, которое Вы почему-то ошибочно называете «командной строкой», относится непосредственно к исполняемому файлу «WinUtilities.dat», имеющему тип «Win32 console» ;).

Реально такое сделать? »
Откуда Вы брали этот самый «WinUtilities.dat»? Источник происхождения каков7

Georgio
19-07-2014, 23:20
@echo off
for %%i in ("App\*.dat") do (
mshta "vbscript:CreateObject("WScript.Shell").Run("cmd"&chr(32)&"/c"&chr(32)&chr(34)&"%%i"&chr(34),0,False)&close"
exit /b
)

Iska
19-07-2014, 23:32
Или так:
@set @x=0 /*
@echo off

for /f "usebackq delims=" %%i in (
`dir /b /a:-d "App\*.dat" 2^>nul`
) do cscript /nologo /e:javascript %0 & goto:eof */
WScript.CreateObject('WScript.Shell').Run('cmd.exe /c"App\\WinUtilities.dat"', 0, false);

Но проще сменить Subsystem с CUI на GUI.

Dodakaedr
20-07-2014, 00:08
Спасибо! Но консоль все равно видна.
Откуда Вы брали этот самый «WinUtilities.dat»? Источник происхождения каков7 »
VMWareThinApp

при этом обозвали её в тексте по-русски «Арр». Я же решил, что сие навряд ли может быть, и имя папки скорее всего должно быть на латыни »
Спрошу по другому: как вы получили такую картинку? С помощью чего?

Iska
21-07-2014, 10:09
Но консоль все равно видна. »
У меня —нет. Ни на одном из кодов из #9/#10. Сожалею. Чтение документации на VMware ThinApp не принесло результатов.

Спрошу по другому: как вы получили такую картинку? С помощью чего? »
Я скопировал текст из Вашего первого поста и вставил его в редактор Far Manager'а. Затем там же «ручками» набрал «App» по латыни. Добавил пробелов для выравнивания. Сохранил файл. Открыл его на просмотр. Перевёл в режим отображения шестнадцатеричных кодов. Сделал скриншот посредством PicPic. Добавил выделение, стрелки и выложил на публичный хостинг.

Dodakaedr
21-07-2014, 14:52
Я скопировал текст из Вашего первого поста и вставил его в редактор Far Manager'а. Затем там же «ручками» набрал «App» по латыни. Добавил пробелов для выравнивания. Сохранил файл. Открыл его на просмотр. Перевёл в режим отображения шестнадцатеричных кодов. Сделал скриншот посредством PicPic. Добавил выделение, стрелки и выложил на публичный хостинг. »
Понял!

Georgio
26-07-2014, 19:16
Я скопировал текст из Вашего первого поста и вставил его в редактор Far Manager'а. Затем там же «ручками» набрал «App» по латыни. Добавил пробелов для выравнивания. Сохранил файл. Открыл его на просмотр. Перевёл в режим отображения шестнадцатеричных кодов. Сделал скриншот посредством PicPic. Добавил выделение, стрелки и выложил на публичный хостинг. »



Можно и так:

@echo off
echo Арр>1.txt
echo App>2.txt
for /f "skip=1 tokens=2,3" %%i in ('fc /b 1.txt 2.txt') do (
call set x=%%x%% %%i
call set y=%%y%% %%j
)
del 1.txt 2.txt
chcp 1251>nul
for %%i in ("Арр -%x%" "App -%y%") do (
chcp 866>nul
echo %%~i
chcp 1251>nul
)
pause>nul
exit /b

.

Iska
26-07-2014, 19:36
Georgio, по hex-кодам сразу видно, что не латиница. Для себя я «на автомате» проделал только это: «Ctrl-Insert», «Alt-Tab», «Shift-F4», «Ctrl-Down», «Down», «Down», «Enter», «Enter», «Shift-Insert», «F2», «F6», «F4» — без набора «App» по латыни, создания скриншота и рисования стрелок. Всё это было сделано только для демонстрации.




© OSzone.net 2001-2012