Как открыть файлы с помощью командного файла, в виде ввода в командный файл - PullRequest
1 голос
/ 09 июля 2019

Когда я начал изучать язык программирования C, я ненавидел утомительный процесс компиляции файлов c, используя командную строку, используя gcc, я знаю, что есть другие программы, которые могут решить эту проблему, но я подумал, что это будет довольно сложноиспользуйте пакетные файлы для выполнения этого процесса, так как он также работает в командной строке, первая проблема, которую я не смог решить, - это открыть файл c с помощью пакетного файла в виде ввода, как при открытии текстовых файлов с использованиемкроме текстового редактора, было бы здорово сделать это для файлов c.

Я знаю, что в этой ситуации мы можем заставить пакет открыть окно командной строки и ждать ввода пути к файлу c, поскольку мы можем перетащить файл c из окна проводника, в командное окно, и он запишет путь к файлу в командной строке, но я предпочел использовать первый метод, поскольку он проще и может помочь в других ситуациях, когдаметод перетаскивания может не помочь, особенно когдажелая открыть файлы с помощью чего-то другого, кроме командного файла, например, файла Python.

1 Ответ

1 голос
/ 09 июля 2019

Я полагаю, что вы хотите связать файлы .C с помощью пакетного сценария.

EG: так что если вы дважды щелкните файл .c или вызовете файл .c в командной строке, он будетпередаваться в качестве аргумента в сценарий CMD, в котором будет работать GCC.

Это возможно как через графический интерфейс, так и через CMD.

Вот пример того, как вывыполнит это:

Необязательно: Сделайте резервную копию старой ассоциации для файлов .c, чтобы иметь возможность восстановить ее позже, если хотите:

REM Backup old association for .c files to be able to restore it later if you want:

Assoc .c >>"%temp%\BKP_Assocs.txt"

Создать пользовательский тип файла, который указываетк вашему сценарию CMD. - это связывает тип файла со сценарием CMD, вам нужно будет указать полный путь с кавычками для сценария cmd:

FType c.cmd="C:\Path\To\YourScript.cmd"

Свяжите .cРасширение файла с пользовательским типом файла, созданным в FType, что позволяет открывать его в сценарии CMD:

Assoc .c=c.cmd

После того, как вы запустите вышеуказанное, вы можете дважды щелкнуть по любому .c file произнесите "C: \ Somefile.c" и у него будет свой адрес passed для указанного вами .CMD сценария например C:\Path\To\YourScript.cmd

Вы также можете ввести "C:\Somefile.c" в CLI и получить файл для открытия в сценарии C:\Path\To\YourScript.cmd в качестве пути, переданного какАргумент.

Ниже приведен пример сценария, который позволяет мне показать вам, что он работает в примере вывода, следующего за этим сценарием, он будет отображать информацию, предоставленную при двойном щелчке * 1039.* файл по вашему выбору для тестирования:

@ECHO OFF
ECHO(%~n0:
ECHO(%~n0: =====================
ECHO(%~n0: Begin Script "%~f0"
ECHO(%~n0: =====================
ECHO(%~n0:
ECHO(%~n0: The Full File Path That opened this script is:
ECHO(%~n0:   %1
ECHO(%~n0:
ECHO(%~n0: The Full File Path That opened this script, without Quotes, is:
ECHO(%~n0:   %~1
ECHO(%~n0:
ECHO(%~n0: ---------------------------------------------------------
ECHO(%~n0: File Name: "%~n1"
ECHO(%~n0: File Path: "%~dp1"
ECHO(%~n0: File Size: "%~z1"
ECHO(%~n0: File Ext:  "%~x1"
ECHO(%~n0: File Date: "%~t1"
PAUSE

Когда я дважды щелкаю файл примера .c Результат:

C_Parser:
C_Parser: =====================
C_Parser: Begin Script "C:\Admin\C_Parser.cmd"
C_Parser: =====================
C_Parser:
C_Parser: The Full File Path That opened this script is:
C_Parser:   "C:\Admin\testfile.c"
C_Parser:
C_Parser: The Full File Path That opened this script, without Quotes, is:
C_Parser:   C:\Admin\testfile.c
C_Parser:
C_Parser: ---------------------------------------------------------
C_Parser: File Name: "testfile"
C_Parser: File Path: "C:\Admin\"
C_Parser: File Size: "35"
C_Parser: File Ext:  ".c"
C_Parser: File Date: "07/09/2019 03:20 PM"
Press any key to continue . . .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...