Когда я дважды щелкаю файлы типа .xise, мне нужно, чтобы моя система выполнила следующее:

C:\Xilinx\14.5\ISE_DS\settings32.bat C:\Xilinx\14.5\ISE_DS\ISE\bin\nt\ise.exe PATH\TO\XISE\FILE\filename.xise

Когда я устанавливаю его поведение по умолчанию для открытия с помощью файла «settings32.bat» (через «Правый клик»> «Свойства»> «Открыть с помощью:> Изменить»), я почти уверен, что он не содержит необходимый файл «ise.exe» ( первый аргумент в файл .bat).

Тем не менее, по умолчанию, который сопоставляется с settings64.bat в том же каталоге, работает нормально, и я не знаю, что установщик сделал, чтобы сопоставить его правильно. (ну, версия x64 не "работает". Он прослушивается и ломается, но по разным причинам отсюда и желание использовать 32-битную версию.)

В файле «settings64.bat» нет ничего, чего нет в файле «settings32.bat» (всего несколько мест, где 64 меняется на 32), поэтому дело не в том, что файл «settings64.bat» просто не нужен файл "ise.exe"; это действительно нужно, но я просто не знаю, как правильно его вставить.

Я искал все вокруг, и я не могу понять, что искать, чтобы решить эту проблему.

Спасибо

1 ответ1

0

Как вы говорите: «... но по разным причинам отсюда и желание использовать 32-битную версию».

  • Как узнать действие по умолчанию для вашего файла .xise :

Из пакетного скрипта:

assoc .xise
for /F "tokens=2 delims==" %%G in ('assoc .xise') do (
      for /f "tokens=*" %%I in ('ftype %%G') do echo %%I
)

Или бежать for команду из командной строки:

for /F "tokens=2 delims==" %G in ('assoc .xise') do for /f "tokens=*" %I in ('ftype %G') do echo %I

  • Как восстановить действие по умолчанию для вашего файла .xise

(из пакетного скрипта нужно запускать от имени администратора):

::  discover the association between our file Extension and current file Type
set "xiseFileType=xiseFile"
for /F "tokens=2 delims==" %%G in ('assoc .xise') do set "xiseFileType=%%G"

:: set variables for better readability next 'ftype' command
set "batchToRun=C:\Xilinx\14.5\ISE_DS\settings32.bat"
set "bat1stPar=C:\Xilinx\14.5\ISE_DS\ISE\bin\nt\ise.exe"

:: define 'cmd.exe' full path: 
:: default version (32-bit or 64-bit dependent on Windows version installed): 
set "com32exe=%comspec%"

:: but we need (non-default) 32-bit version of command interpreter:
if exist "C:\Windows\SysWOW64\cmd.exe" set "com32exe=C:\Windows\SysWOW64\cmd.exe"

:: The FileType should always be created before making a File Association
ftype %xiseFileType%=%com32exe% /D /C call "%batchToRun%" "%bat1stPar%" "%%1" %%*
assoc .xise=%xiseFileType%

Другими словами: теперь действие по умолчанию для вашего файла .xise должно быть следующим (все в единственной строке):

C:\Windows\SysWOW64\cmd.exe /D /C вызывает "C:\Xilinx\14.5\ISE_DS\settings32.bat" "C:\Xilinx\14.5\ISE_DS\ISE\bin\nt\ise.exe" " % 1 "% *

Здесь "%1" развернется до вашего "PATH\TO\XISE\FILE\filename.xise" при двойном щелчке.

А как насчет этого %%* в последней команде ftype ? Никогда не бойтесь: пусть это будет или стереть это, поскольку это всегда будет пустой строкой :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .