![cmd.exe 或 ConEmu 的别名,以不带扩展名的文件名作为参数](https://linux22.com/image/1521167/cmd.exe%20%E6%88%96%20ConEmu%20%E7%9A%84%E5%88%AB%E5%90%8D%EF%BC%8C%E4%BB%A5%E4%B8%8D%E5%B8%A6%E6%89%A9%E5%B1%95%E5%90%8D%E7%9A%84%E6%96%87%E4%BB%B6%E5%90%8D%E4%BD%9C%E4%B8%BA%E5%8F%82%E6%95%B0.png)
我想创建alias
一个运行程序。我的别名如下:alias cc=g++ -Wall -Wextra $1 -o $1
。这样我就可以写入cc app.cpp
,命令将是g++ -Wall -Wextra app.cpp -o app.exe
然而,存在一个问题。
$1
给出带扩展名的文件名,但我只需要文件名。有解决方法吗?doskey
并且ConEmu
没有不带扩展名的文件名的变量。例如,for
在 中有一个这样的变量cmd.exe
。它是%A
。
答案1
这其实很简单,因为@Ƭᴇcʜιᴇ007 提供了有用的链接。只需创建一个 bat 文件并粘贴以下内容:
@echo off
SETLOCAL
for %%i in (%1) do (set filename=%%~ni)
g++ -Wall -Wextra %1 -o %filename%.exe
经过测试并且运行良好。