c - 如何使用批处理文件打开文件,作为批处理文件的输入

标签 c windows batch-file

当我开始学习 C 编程语言时,我讨厌使用 gcc 使用命令行编译 c 文件的繁琐过程,我知道有更好的其他程序可以解决这个问题,但我认为这将是非常具有挑战性的使用批处理文件来执行此过程,因为它也可以在命令提示符下工作,我发现自己无法解决的第一个问题是使用批处理文件以输入的形式打开 c 文件,就像您使用打开文本文件一样记事本以外的文本编辑器,对 c 文件执行此操作会很棒。

我知道在这种情况下,我们可以让批处理打开命令窗口并等待输入 c 文件的路径,因为我们可以将 c 文件从文件资源管理器窗口拖到命令窗口,它会写入文件在命令行中的路径,但我宁愿使用第一种方法,因为它更简单,并且在单击和拖动方法可能无济于事的其他情况下会有所帮助,尤其是当想要使用批处理以外的其他方式打开文件时文件,例如 python 文件。

最佳答案

我相信您想将 .C 文件与批处理脚本相关联。

EG:因此,如果您双击 .c 文件,或在命令行中调用 .c 文件,它将作为参数传递给您将在其中运行 GCC 的 CMD 脚本。

这可以通过 GUI 和 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 文件说“C:\Somefile.c”,它会它是传递给您指定的 .CMD 脚本的地址 例如 C:\Path\To\YourScript.cmd

您还可以在 CLI 上键入 "C:\Somefile.c" 并在 C:\Path\To\YourScript.cmd 中打开文件作为参数传递的路径的脚本。

下面是一个示例脚本,可以让我向您展示它的工作原理,在此脚本之后的示例输出中,当您双击 .c< 时,它会吐出提供的信息 您选择的测试文件:

@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 . . .

关于c - 如何使用批处理文件打开文件,作为批处理文件的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56958897/

相关文章:

java - 无法通过拖放批处理文件来访问 jar 文件

batch-file - 在硬盘驱动器中搜索字符串并返回所有结果,并忽略某些目录

Windows Server 2008 r2 - 无法让 apache 在端口 80 上运行

c - 使用opnet进行协同仿真的问题

c - 该代码做什么?

c++ - 使用 MinGW 帮助在 Windows 上编译 GTK+

windows - 如何使用 windows Batch 存储超过 9 个参数

python - 管道批处理文件输出到 Python 脚本

windows - 更改 IP 和 DNS 的批处理命令

c - 显示按状态过滤的进程的系统调用