Làm cách nào tôi có thể đặt tệp mở mặc định của Windows8 để chèn tên tệp vào dòng lệnh oneliner?


0

Khi tôi nhấp đúp vào tệp thuộc loại .xise, tôi cần hệ thống của mình thực thi các thao tác sau:

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

Khi tôi đặt hành vi mặc định của nó thành mở bằng tệp "settings32.bat" (thông qua Nhấp chuột phải> Thuộc tính> Mở bằng:> Thay đổi), tôi khá chắc chắn rằng nó không bao gồm tệp "ise.exe" cần thiết ( đối số đầu tiên cho tệp .bat).

Tuy nhiên, mặc định ánh xạ tới settings64.bat trong cùng thư mục hoạt động tốt và tôi không biết trình cài đặt đã làm gì để ánh xạ chính xác. (tốt, phiên bản x64 không "hoạt động". Nó bị lỗi và bị hỏng nhưng vì những lý do khác nhau do đó mong muốn sử dụng phiên bản 32 bit.)

Không có gì trong tệp "settings64.bat" không có trong tệp "settings32.bat" (chỉ một vài điểm trong đó 64 thay đổi thành 32), do đó không phải là tệp "settings64.bat" không cần tập tin "ise.exe"; Nó cần nó nhưng tôi không biết làm thế nào để chèn nó chính xác.

Tôi đã tìm kiếm khắp nơi và dường như tôi không thể tìm ra thứ gì cần tìm để giải quyết vấn đề này.

Cảm ơn

Câu trả lời:


0

Như bạn nói: "... nhưng vì những lý do khác nhau, do đó mong muốn sử dụng phiên bản 32 bit".

  • Cách tìm hành động mặc định cho .xisetệp của bạn :

Từ một tập lệnh bó:

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

Hoặc, để chạy forlệnh từ dòng lệnh:

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

  • Cách thiết lập lại hành động mặc định cho .xisetệp của bạn

(từ tập lệnh bó, cần được chạy với tư cách quản trị viên):

::  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%

Nói cách khác: bây giờ hành động mặc định cho .xisetệp của bạn sẽ như sau (tất cả trong dòng duy nhất):

C: \ Windows \ SysWOW64 \ cmd.exe / D / C gọi "C: \ Xilinx \ 14,5 \ ISE_DS \ settings32.bat" "C: \ Xilinx \ 14,5 \ ISE_DS \ ISE \ bin \ nt \ ise.exe" % 1 "% *

Ở đây "%1"sẽ mở rộng để của bạn "PATH\TO\XISE\FILE\filename.xise"khi nhấp đúp.

Và những gì về điều đó %%*trong ftypelệnh cuối cùng ? Không bao giờ sợ hãi: hãy để nó hoặc xóa nó đi vì nó sẽ mở rộng thành một chuỗi trống luôn :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.