有没有一种方法可以在命令提示符中使用我自己的自定义命令,有/无参数,以便它可以调用批处理文件并运行它?我知道像'call someFile.bat'这样的东西会起作用,但是如果我的批处理文件是要查找一个特殊文件,我是否可以找到一种方法来使用'find blah.txt',它会用'blah'运行该批处理文件。 txt'作为变量?我很确定没有一些第三方工具,但是有人知道某种方式吗?
答案 0 :(得分:1)
根据一些评论,"真实"问题是:
如何向CMD添加自定义命令?
答案:将批处理文件放在路径中的某个位置(或使用自定义文件夹扩展路径),然后就可以像任何其他命令一样在任何地方使用它。
答案 1 :(得分:0)
我想你想知道如何创建一个带参数的命令(或.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
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
有用)。以下是执行此操作的代码:
:: 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
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