Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Рестарт/перезапуск TC
Goto page Previous  1, 2, 3 ... 8, 9, 10, 11, 12  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
sergiokapone



Joined: 18 Nov 2009
Posts: 99

Post (Separately) Posted: Fri Mar 01, 2019 02:45    Post subject: Reply with quote

Соорудил скрипт, который перезапускает 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
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10249
Location: Россия, Саратов

Post (Separately) Posted: Mon Mar 04, 2019 21:26    Post subject: Reply with quote

sergiokapone
Плохо всё это работает. Из 32-битного TC в 64-битный худо-бедно переключает: экзешник — с потерей текущего каталога (открывается тот, который был при последнем выходе из TC), батник без этого, но, естественно, с консольным окошком. А обратного переключения на 32-битный TC из 64-битного у меня вообще нет: появляется сообщение об ошибке, что не найден файл ТOTALCMD6464.EXE (именно так!), в случае с батником — в паре с незакрытым консольным окном.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
sergiokapone



Joined: 18 Nov 2009
Posts: 99

Post (Separately) Posted: Mon Mar 04, 2019 21:58    Post subject: Reply with quote

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
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10249
Location: Россия, Саратов

Post (Separately) Posted: Mon Mar 04, 2019 23:05    Post subject: Reply with quote

sergiokapone
У меня Windows 7 x64, путь к TC пробелов не содержит.
Выполнение в консоли даёт ExecutablePath=C:\Totalcmd\TOTALCMD.EXE и соответствующий аналоги для 64-битного TC.
Скрипт в каком формате?
И цитировать меня полностью не надо. И так понятно, кто, с кем и о чём общается.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
sergiokapone



Joined: 18 Nov 2009
Posts: 99

Post (Separately) Posted: Mon Mar 04, 2019 23:11    Post subject: Reply with quote

.cmd или .bat, одинаково.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10249
Location: Россия, Саратов

Post (Separately) Posted: Tue Mar 05, 2019 06:52    Post subject: Reply with quote

sergiokapone
Да, сейчас батник вроде бы работает прилично (тщательно не проверял).
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
sergiokapone



Joined: 18 Nov 2009
Posts: 99

Post (Separately) Posted: Tue Mar 05, 2019 10:49    Post subject: Reply with quote

exe-шник на основе батника
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10249
Location: Россия, Саратов

Post (Separately) Posted: Tue Mar 05, 2019 11:06    Post subject: Reply with quote

sergiokapone
Нет, этот экзешник меня совершенно не устраивает. Во-первых теряются текущие пути. Во-вторых, обратное переключение из x64 не работает. При ближайшем рассмотрении последняя проблема есть и в батнике (утром дома вроде бы это работало, сейчас на другой машине с теми же системой и TC — нет). В-третьих, идёт наращивание номеров копий окна TC.
Я использую экзешник на основе этого скрипта из текущей темы с последующими модификациями (раз, два).
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
sergiokapone



Joined: 18 Nov 2009
Posts: 99

Post (Separately) Posted: Tue Mar 05, 2019 11:43    Post subject: Reply with quote

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
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10249
Location: Россия, Саратов

Post (Separately) Posted: Tue Mar 05, 2019 11:56    Post subject: Reply with quote

sergiokapone
Батник работает приемлемо по всем указанным выше пунктам.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
sergiokapone



Joined: 18 Nov 2009
Posts: 99

Post (Separately) Posted: Tue Mar 05, 2019 12:00    Post subject: Reply with quote

Avada,
спасибо, проблема, думаю, была в лишних пробелах в переменных x64 и x32.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10249
Location: Россия, Саратов

Post (Separately) Posted: Tue Mar 05, 2019 12:02    Post subject: Reply with quote

sergiokapone
Понятно. Будет новый экзешник — гляну. Но заглавные буквы и точки забывать в сообщениях не надо.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
sergiokapone



Joined: 18 Nov 2009
Posts: 99

Post (Separately) Posted: Tue Mar 05, 2019 12:12    Post subject: Reply with quote

exe-шник (скачивание сразу, при нажатии).
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10249
Location: Россия, Саратов

Post (Separately) Posted: Tue Mar 05, 2019 12:22    Post subject: Reply with quote

sergiokapone
Ровно тот же набор проблем, что и раньше. Число окон TC то увеличивается, то уменьшается с наращиванием при этом цифр для номеров копий, текущие каталоги не сохраняются, обратного переключения с x64 нет.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
sergiokapone



Joined: 18 Nov 2009
Posts: 99

Post (Separately) Posted: Tue Mar 05, 2019 12:27    Post subject: Reply with quote

Avada,
наверное exe-шником пользоваться не целесообразно. Я компилировал в
Quick Batch File Compiler. Может попробую, как-нибудь, другой компилятор.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 8, 9, 10, 11, 12  Next
Page 9 of 12

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group