Страница 3 из 4
Добавлено: Пн сен 21, 2015 10:25
Mellomann
MVV писал(а):Если батник запускать двойным кликом, рабочая папка будет правильной, а если из другой папки, то нет. И если с правами админа его запускать, рабочая папка будет C:\Windows\System32, и без указания пути батник работать не будет.
Внезапно.
MVV писал(а):Слово "скомпилить" не совсем применимо к скриптам, которые просто пихаются в запускающий их экзешник.
И тут облом... Тогда неинтересно.
Добавлено: Пн сен 21, 2015 10:26
MVV
Flasher писал(а):Из под юзера? Из под админа ничего подобного не происходит.
Когда при включенном UAC запускаешь с повышением через контекстное меню (
Запуск от имени администратора), рабочая папка
C:\Windows\System32.
Добавлено: Пн сен 21, 2015 10:29
Mellomann
MVV писал(а):при включенном UAC запускаешь с повышением через контекстное меню (Запуск от имени администратора), рабочая папка C:\Windows\System32.
Это как-то излечимо?
Добавлено: Пн сен 21, 2015 10:29
Flasher
Mellomann писал(а):Вполне себе прокатило, вчера оттестировал на win7 - работает. Осталось на некрофилах ещё погонять.
Ну вот создай кнопку или пропиши значением ключа и попробуй запустить AkelPad из 32-битного ТС. Какой откроется? x32.
Mellomann писал(а):И тут облом... Тогда неинтересно.
А какая, собственно, разница?
MVV писал(а):Когда при включенном UAC...
Включил. Всё по-старому.
Добавлено: Пн сен 21, 2015 10:36
Mellomann
MVV писал(а):Код: Выделить всё
start "%~dp0\totalcmd.exe" /N /I="%~dp0\Wincmd0.ini"
И при этом в разы универсальнее.
И не работает.
Flasher писал(а):AkelPad из 32-битного ТС. Какой откроется? x32.
Да. А если ещё из ТС32 запустить ТС64, то уже из второго будет AkelPad64.
Вполне предсказуемо. Нормально.
Добавлено: Пн сен 21, 2015 10:40
MVV
Mellomann писал(а):MVV писал(а):Код: Выделить всё
start "%~dp0\totalcmd.exe" /N /I="%~dp0\Wincmd0.ini"
И не работает.
Точно, тут же прибабах
start надо учитывать!
Код: Выделить всё
start "" "%~dp0\totalcmd.exe" /N /I="%~dp0\Wincmd0.ini"
Добавлено: Пн сен 21, 2015 10:40
Flasher
Mellomann писал(а):Всё как доктор прописал.
Доктор весьма низкой квалификации. Что плохого в использовании программ с соответствующей системе архитектурой вне зависимости от битности оболочки?
Добавлено: Пн сен 21, 2015 10:42
MVV
Flasher писал(а):MVV писал(а):Когда при включенном UAC...
Включил. Всё по-старому.
Тестовый батник:
Код: Выделить всё
echo %cd%
start totalcmd.exe
pause
start "" "%~dp0\totalcmd.exe" /n /i="%~dp0\wincmd.ini"
Когда запускаю без админа, обе команды запускают тотал. Когда от админа - только вторая. И путь при этом отображается
C:\Windows\System32. Чтобы вылечить эту ересь, часто первой строкой батника пишут
cd "%~dp0".
Добавлено: Пн сен 21, 2015 10:48
Mellomann
Flasher
В конкретно этом случае (akelpad и rar) вполне логично брать х32 из ТС32 (особенно при ковырянии во всяких system32, если надо не через х64 ковырять).
Допустимая жертва ради объединения конфиг.
А, вот, по поводу другой обвязки ТС надо будет думать...
Добавлено спустя 6 минут:
MVV писал(а):start "" "%~dp0\totalcmd.exe" /n /i="%~dp0\wincmd.ini"
Нет слов... Лейтенант Внезапность нервно курит в сторонке...
Вот ЗАЧЕМ оно работает именно так? Сам бы до ТАКОГО никогда бы не додумался...
И, что характерно, работает. Спасибо.
Добавлено: Пн сен 21, 2015 10:52
Flasher
MVV писал(а):Тестовый батник:
Вот мой тестовый батник:
Код: Выделить всё
TOTALCMD.EXE /N /i=%0"\..\test.ini"
pause
start TOTALCMD.EXE /N /i=%0"\..\test.ini"
Оба раза запускается ТС с указанным конфигом.
Mellomann писал(а):особенно при ковырянии во всяких system32
Подробнее, пож-та.
Mellomann писал(а):А, вот, по поводу другой обвязки ТС надо будет думать...
Что за обвязка?
Добавлено: Пн сен 21, 2015 11:01
Mellomann
Flasher писал(а):Подробнее, пож-та.
"Мне стыдно, давайте не будем об этом" (с)
Flasher писал(а):Что за обвязка?
Разная софтина из-вне папки ТС, типа дефраг, восстанавливалок удалённого, ntfs-ссыльщиков и т.п..
Хотя, там, наверное, тоже лучше из ТС32 не вызывать х64, так что пусть пока так.
Хотя сам по себе вопрос заставил меня сейчас задуматься, всё ли из них настолько надо... Ну, кроме кошерности софта х64 на ОС х64...
Добавлено: Пн сен 21, 2015 11:09
Flasher
Mellomann писал(а):"Мне стыдно, давайте не будем об этом" (с)
А ведь слово - не воробей.
Mellomann писал(а):лучше из ТС32 не вызывать х64
Срочно требуются обоснования!
Mellomann писал(а):Ну, кроме кошерности софта х64 на ОС х64...
Как насчёт ненужного перенаправления на x32?
Добавлено: Пн сен 21, 2015 11:16
Mellomann
Flasher писал(а):Mellomann писал(а):лучше из ТС32 не вызывать х64
Срочно требуются обоснования!
Flasher писал(а):Mellomann писал(а):Ну, кроме кошерности софта х64 на ОС х64...
Как насчёт ненужного перенаправления на x32?
Ну так второе на первое и есть ответ. И ещё разные переменные из х32 чтоб в х64 не попали за ненадобностью.
Это как дрова х64 из ТС32 ставить. Либо бесполезно, либо геморно.
Добавлено: Пн сен 21, 2015 11:31
Flasher
Mellomann писал(а):Ну так второе на первое и есть ответ.
Это совсем не ответ. Это мой аргумент против ложного значения переменной.
Mellomann писал(а):И ещё разные переменные из х32 чтоб в х64 не попали за ненадобностью.
Какие переменные? Где? Я ничего не понимаю.
Добавлено: Пн сен 21, 2015 11:47
MVV
Mellomann писал(а):MVV писал(а):start "" "%~dp0\totalcmd.exe" /n /i="%~dp0\wincmd.ini"
Нет слов... Лейтенант Внезапность нервно курит в сторонке...
Вот ЗАЧЕМ оно работает именно так? Сам бы до ТАКОГО никогда бы не додумался...
И, что характерно, работает. Спасибо.
Я с этим раньше сталкивался. У
start есть идиотский первый опциональный параметр, который она определяет по наличию кавычки, поэтому при обрамлении пути к программе в кавычки приходится указывать и этот параметр (подробности по команде
start /?).