在cmd中使用我自己的命令运行批处理文件?

时间:2014-06-21 03:47:35

标签: batch-file

有没有一种方法可以在命令提示符中使用我自己的自定义命令,有/无参数,以便它可以调用批处理文件并运行它?我知道像'call someFile.bat'这样的东西会起作用,但是如果我的批处理文件是要查找一个特殊文件,我是否可以找到一种方法来使用'find blah.txt',它会用'blah'运行该批处理文件。 txt'作为变量?我很确定没有一些第三方工具,但是有人知道某种方式吗?

4 个答案:

答案 0 :(得分:1)

根据一些评论,"真实"问题是:

如何向CMD添加自定义命令?

答案:将批处理文件放在路径中的某个位置(或使用自定义文件夹扩展路径),然后就可以像任何其他命令一样在任何地方使用它。

答案 1 :(得分:0)

我想你想知道如何创建一个带参数的命令(或.bat文件)(如函数)。

如果这就是你想要的,那实际上很容易:

Name.bat

:: This batch file will greet whoever's name you give as a parameter

:: Check for lack of parameters ->
if "%*"==""(
Echo Usage     %~n0.bat Name1  Name2  Name3
Echo E.g.      %~n0.bat John   Bill   "Harry Turner"
goto :eof
)

:: Main code
Echo Hi %1!
Echo Hello %2?
Echo Herro %3...

goto :eof

CMD提示

C:\> Name.bat Monacraft Daniel Hacker09 Qwertypad

Hi Monacraft!
Hello Daniel?
Herro Hacker09...

C:\> Name.bat Monacraft Troll

Hi Monacraft!
Hello Troll?
Herro ...

这就是你的参数/参数的基础知识。要引用所有参数,只需使用%*并使用shift命令访问各个参数(如您所见,这对Name.bat有用)。以下是执行此操作的代码:

NameShifter.bat

:: This batch file will greet whoever's name you give as a parameter

:: Check for lack of parameters ->
if "%*"==""(
Echo Usage     %~n0.bat Name1  Name2  Name3            ...
Echo E.g.      %~n0.bat John   Bill   "Harry Turner"   ...
goto :eof
)

:: Main code
:loop
if "%1"=="" goto :eof
echo Hi %1!
shift /1
goto :loop
goto :eof

CMD提示

C:\> NameShifter.bat Monacraft Daniel Hacker09 Qwertypad

Hi Monacraft!
Hi Daniel!
Hi Hacker09!
Hi Qwertypad!

C:\> Name.bat Monacraft Troll

Hi Monacraft!
Hi Troll!

莫纳

答案 2 :(得分:0)

使用此蝙蝠的简单方法: 也许是这样:

C:> mybatfile.bat 123456789KEY

set KEY="%*"
echo %KEY%

将显示: 123456789KEY

答案 3 :(得分:-1)

如果你知道," blah.txt"应该是,你可以使用:

if exist "C:\path to file\blah.txt" echo Here it is!

如果你不了解这条路,那就有点复杂了。这将搜索" c:\ startdir"的所有子目录中的文件。请注意,如果要搜索的子目录很多,这可能需要一段时间:

echo found "blah.txt" at the following locations:
for /f "delims=" %%i in ('dir /s /b "C:\startdir\bla.txt"') do echo %%i

使用带参数的批处理文件:

echo %%i替换为call mybatchfile "%%i"。注意:如果它找到数百个" blah.txt",它会调用mybachtfile.bat数百次。

使用" mybatchfile.bat"中的参数:

echo The parameter is: %1