View previous topic :: View next topic |
Author |
Message |
sergiokapone
Joined: 18 Nov 2009 Posts: 99
|
(Separately) Posted: Fri Mar 01, 2019 02:45 Post subject: |
|
|
Соорудил скрипт, который перезапускает TC с другой разрядностью
Code: |
:: Перезапуск TC в другой разрядности
:: x32<=>x64
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set x64=Totalcmd64.EXE
FOR /F %%i IN ('TASKLIST /NH /FI "IMAGENAME eq totalcmd*"') DO (
FOR /F "tokens=2 delims==" %%j IN ('wmic process where "name='%%i'" get ExecutablePath /FORMAT:LIST') DO (
set line=%%j
taskkill /im %%i >NUL
IF %%i==!x64! (start !line:64=!) ELSE (start !line:~0,-5!64!line:~-5!)
)
)
exit
|
Если соорудить из этого скрипта exe-шник то при перезапуске теряется фокус на приложении, не критично, но не совершенно. Можно такое исправить? Сам bat-ник, кстати, не фокус не теряет. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10257 Location: Россия, Саратов
|
(Separately) Posted: Mon Mar 04, 2019 21:26 Post subject: |
|
|
sergiokapone
Плохо всё это работает. Из 32-битного TC в 64-битный худо-бедно переключает: экзешник — с потерей текущего каталога (открывается тот, который был при последнем выходе из TC), батник без этого, но, естественно, с консольным окошком. А обратного переключения на 32-битный TC из 64-битного у меня вообще нет: появляется сообщение об ошибке, что не найден файл ТOTALCMD6464.EXE (именно так!), в случае с батником — в паре с незакрытым консольным окном. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
sergiokapone
Joined: 18 Nov 2009 Posts: 99
|
(Separately) Posted: Mon Mar 04, 2019 21:58 Post subject: |
|
|
Avada wrote: | sergiokapone
Плохо всё это работает. Из 32-битного TC в 64-битный худо-бедно переключает: экзешник — с потерей текущего каталога (открывается тот, который был при последнем выходе из TC), батник без этого, но, естественно, с консольным окошком. А обратного переключения на 32-битный TC из 64-битного у меня вообще нет: появляется сообщение об ошибке, что не найден файл ТOTALCMD6464.EXE (именно так!), в случае с батником — в паре с незакрытым консольным окном. |
Я тестил на Win10 на двух компах, скорее всего у Вас другая винда. А что выдает команда
Code: | wmic process where "name='totalcmd.exe'" get ExecutablePath /FORMAT:LIST |
Code: | wmic process where "name='totalcmd64.exe'" get ExecutablePath /FORMAT:LIST |
если просто набрать в консоли из x32 и x64, соответственно?
Или, может еще вариант, у Вас путь к totalcmd.exe содержит пробелы.
Добавлено спустя 37 минут:
Как вариант, попробуйте это скрипт
Code: |
::wincmd.ini
::[Shortcuts]
::C+R=em_Restart_x32_x64_TC
::
::usercmd.ini
::[em_Restart_x32_x64_TC]
::cmd=%commander_path%\Scripts\Restart_x86-x64.cmd
::menu=Перезапуск TC в другой разрядности
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set x64=Totalcmd64.EXE
set x32=totalcmd.EXE
FOR /F %%i IN ('TASKLIST /NH /FI "IMAGENAME eq totalcmd*"') DO (
taskkill /im %%i >NUL
IF %%i==!x64! (
start !commander_path!\!x32! /F
echo ============
echo Запуск x32
echo ============
timeout 1 >nul
) ELSE (
start !commander_path!\!x64! /F
echo ============
echo Запуск x64
echo ============
timeout 1 >nul
)
)
exit
|
|
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10257 Location: Россия, Саратов
|
(Separately) Posted: Mon Mar 04, 2019 23:05 Post subject: |
|
|
sergiokapone
У меня Windows 7 x64, путь к TC пробелов не содержит.
Выполнение в консоли даёт ExecutablePath=C:\Totalcmd\TOTALCMD.EXE и соответствующий аналоги для 64-битного TC.
Скрипт в каком формате?
И цитировать меня полностью не надо. И так понятно, кто, с кем и о чём общается. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
sergiokapone
Joined: 18 Nov 2009 Posts: 99
|
(Separately) Posted: Mon Mar 04, 2019 23:11 Post subject: |
|
|
.cmd или .bat, одинаково. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10257 Location: Россия, Саратов
|
(Separately) Posted: Tue Mar 05, 2019 06:52 Post subject: |
|
|
sergiokapone
Да, сейчас батник вроде бы работает прилично (тщательно не проверял). _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
sergiokapone
Joined: 18 Nov 2009 Posts: 99
|
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10257 Location: Россия, Саратов
|
(Separately) Posted: Tue Mar 05, 2019 11:06 Post subject: |
|
|
sergiokapone
Нет, этот экзешник меня совершенно не устраивает. Во-первых теряются текущие пути. Во-вторых, обратное переключение из x64 не работает. При ближайшем рассмотрении последняя проблема есть и в батнике (утром дома вроде бы это работало, сейчас на другой машине с теми же системой и TC — нет). В-третьих, идёт наращивание номеров копий окна TC.
Я использую экзешник на основе этого скрипта из текущей темы с последующими модификациями (раз, два). _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
sergiokapone
Joined: 18 Nov 2009 Posts: 99
|
(Separately) Posted: Tue Mar 05, 2019 11:43 Post subject: |
|
|
Avada,
я, кажись, понимаю в чем проблема,
если Вам не трудно, можете проверить этот батник с сообщениями для debug'инга?
Code: |
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set "x64=Totalcmd64.EXE"
set "x32=totalcmd.EXE"
FOR /F %%i IN ('TASKLIST /NH /FI "IMAGENAME eq totalcmd*"') DO (
echo Closing %%i
timeout 2 >nul
taskkill /im %%i >NUL
IF "%%i" EQU "!x64!" (
echo "%%i" , "!x64!"
echo Starting !commander_path!\!x32!
timeout 2 >nul
start !commander_path!\!x32! /F
) ELSE (
echo "%%i" , "!x64!"
echo Starting !commander_path!\!x64!
timeout 2 >nul
start !commander_path!\!x64! /F
)
)
|
|
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10257 Location: Россия, Саратов
|
(Separately) Posted: Tue Mar 05, 2019 11:56 Post subject: |
|
|
sergiokapone
Батник работает приемлемо по всем указанным выше пунктам. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
sergiokapone
Joined: 18 Nov 2009 Posts: 99
|
(Separately) Posted: Tue Mar 05, 2019 12:00 Post subject: |
|
|
Avada,
спасибо, проблема, думаю, была в лишних пробелах в переменных x64 и x32. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10257 Location: Россия, Саратов
|
(Separately) Posted: Tue Mar 05, 2019 12:02 Post subject: |
|
|
sergiokapone
Понятно. Будет новый экзешник — гляну. Но заглавные буквы и точки забывать в сообщениях не надо. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
sergiokapone
Joined: 18 Nov 2009 Posts: 99
|
(Separately) Posted: Tue Mar 05, 2019 12:12 Post subject: |
|
|
exe-шник (скачивание сразу, при нажатии). |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10257 Location: Россия, Саратов
|
(Separately) Posted: Tue Mar 05, 2019 12:22 Post subject: |
|
|
sergiokapone
Ровно тот же набор проблем, что и раньше. Число окон TC то увеличивается, то уменьшается с наращиванием при этом цифр для номеров копий, текущие каталоги не сохраняются, обратного переключения с x64 нет. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
sergiokapone
Joined: 18 Nov 2009 Posts: 99
|
(Separately) Posted: Tue Mar 05, 2019 12:27 Post subject: |
|
|
Avada,
наверное exe-шником пользоваться не целесообразно. Я компилировал в
Quick Batch File Compiler. Может попробую, как-нибудь, другой компилятор. |
|
Back to top |
|
|
|