在CMD中查找文件位置并使用它
Find file location in CMD and use it
我需要在任何给定的机器 (windows) 上找到 php.exe
文件。问题是我不知道在哪里可以找到 php.exe
文件,因为路径可能会稍微改变。我试图找到 wamp 附带的 php.exe
文件。
问题是wamp根据php版本改变了文件路径。例如,在一个版本中路径为:c:/wamp/bin/php5.5.2/php/php.exe
而在另一个版本中路径为 c:/wamp/bin/php5.4.1/php/php.exe
我需要一种方法来找到 php.exe
文件的路径,以便我可以使用它和 运行 php 文件:
c:/wamp/bin/php5.5.2/php/php.exe -f "path/to/my/php/file.php"
我试过做类似的事情:
cd c:/wamp
dir /S /P php.exe
结果我得到了文件的文件夹以及更多详细信息,例如文件大小等。但是,我不知道如何只获取所需的信息、位置,然后在另一个批处理命令中使用它来执行我想要的操作。
输出示例(在 c:/xampp [这台机器上还没有 wamp。]):
Volume in drive C has no label. Volume Serial Number is 1SD-23F
Directory of c:\xampp\php
07/24/2014 12:24 AM 65,536 php.exe
1 File(s) 65,536 bytes
Total Files Listed:
1 File(s) 65,536 bytes
0 Dir(s) 354,231,255,040 bytes free
如您所见,它告诉我路径是 c:\xampp\php
现在我所要做的就是以某种方式接受它,附加 \php.exe -f "path/to/my/file.php"
并完成。
如果文件只有一个instance/version
@echo off
setlocal enableextensions disabledelayedexpansion
for /f "delims=" %%a in ('dir "c:\wamp\php.exe" /a-d /b /s') do set "php=%%a"
echo %php%
"%php%" -f "c:\somewhere\your\file.php"
dir
命令将搜索 php 可执行文件的所有实例。 dir
由迭代 dir
输出的 for
命令执行。对于每一行,执行 do
子句中的代码。
使用where
。从当前目录和 PATH
环境变量搜索:
where php.exe
要搜索特定的目录结构:
where /R c:\wamp php.exe
我后来来了,但纯粹PHP解决方案
function getPhpPath() {
$pattern = '/php[0-9\.]*/i';
$mainPath = "C:/wamp/bin";
foreach(scandir("C:/wamp/bin") as $dir) {
if(preg_match($pattern, $dir)) {
return $mainPath . '/' . $dir;
}
}
return NULL;
}
我需要在任何给定的机器 (windows) 上找到 php.exe
文件。问题是我不知道在哪里可以找到 php.exe
文件,因为路径可能会稍微改变。我试图找到 wamp 附带的 php.exe
文件。
问题是wamp根据php版本改变了文件路径。例如,在一个版本中路径为:c:/wamp/bin/php5.5.2/php/php.exe
而在另一个版本中路径为 c:/wamp/bin/php5.4.1/php/php.exe
我需要一种方法来找到 php.exe
文件的路径,以便我可以使用它和 运行 php 文件:
c:/wamp/bin/php5.5.2/php/php.exe -f "path/to/my/php/file.php"
我试过做类似的事情:
cd c:/wamp
dir /S /P php.exe
结果我得到了文件的文件夹以及更多详细信息,例如文件大小等。但是,我不知道如何只获取所需的信息、位置,然后在另一个批处理命令中使用它来执行我想要的操作。
输出示例(在 c:/xampp [这台机器上还没有 wamp。]):
Volume in drive C has no label. Volume Serial Number is 1SD-23F
Directory of c:\xampp\php
07/24/2014 12:24 AM 65,536 php.exe 1 File(s) 65,536 bytes
Total Files Listed: 1 File(s) 65,536 bytes 0 Dir(s) 354,231,255,040 bytes free
如您所见,它告诉我路径是 c:\xampp\php
现在我所要做的就是以某种方式接受它,附加 \php.exe -f "path/to/my/file.php"
并完成。
如果文件只有一个instance/version
@echo off
setlocal enableextensions disabledelayedexpansion
for /f "delims=" %%a in ('dir "c:\wamp\php.exe" /a-d /b /s') do set "php=%%a"
echo %php%
"%php%" -f "c:\somewhere\your\file.php"
dir
命令将搜索 php 可执行文件的所有实例。 dir
由迭代 dir
输出的 for
命令执行。对于每一行,执行 do
子句中的代码。
使用where
。从当前目录和 PATH
环境变量搜索:
where php.exe
要搜索特定的目录结构:
where /R c:\wamp php.exe
我后来来了,但纯粹PHP解决方案
function getPhpPath() {
$pattern = '/php[0-9\.]*/i';
$mainPath = "C:/wamp/bin";
foreach(scandir("C:/wamp/bin") as $dir) {
if(preg_match($pattern, $dir)) {
return $mainPath . '/' . $dir;
}
}
return NULL;
}