2012-08-23 33 views
1

我想编写一个函数,用另一个嵌入式命令%another%在另一个目录(共享驱动器)中执行“find”命令。如何使用另一个目录中的另一个嵌入式命令执行“查找”命令?

下面的理念是:

REM Take in log file name input eg. "result_10030" = %1 to search for all result_10030*.log = %1*.log 
REM Use the following to list the files matching result_10030*.log 

for /f "delims=" %%x in ('dir /d /od /b %1*.log') do set recent=%%x 
echo %recent% 

REM Use %recent% as the file to perform find 
REM Take in %2 as share drive path 

find "PASSED" %2%recent% 

显然,这是行不通的。

您的建议将不胜感激! :)

+0

这看起来像一个Windows批处理文件 - 与DOS,C#,python.net或窗口(GUI事物,而不是OS)无关。或者我错过了什么? – dbenham

回答

0

DIR /D/B选项不兼容 - /B选项将覆盖/D选项。

您的FOR/F循环还需要知道查找的路径,而不仅仅是您的FIND通讯。最简单的做法是将当前目录更改为所需的路径。

pushd %2 
for /f "delims=" %%x in ('dir /d /od /b "%~1*.log"') do set "recent=%%x" 
echo %recent% 
find "PASSED" "%recent%" 
set rtn=%errorlevel% 
popd 
exit /b %rtn% 
+0

我试图删除/ D,它不会影响功能。我也试过了/ o-d和/ od,它只是第一个文件和最后一个文件的排列。我需要/ od才能得到最后一个文件。 – SeiZai

+0

其实我的计划是为这个功能创建一个批处理文件。这个批处理文件能够获得最后一个文件,并执行查找“PASSED”%recent%,提供批处理文件在同一目录中的所有文件。但问题是我需要在其他目录中执行此功能。这就是为什么我出来这个想法找到“通过”%2%最近%。 %2是文件/结果存储的路径。 – SeiZai

+0

@ user1618511 - 糟糕 - 我很困惑/ od与/ ad。我明白你现在正在尝试什么。看看我修改后的答案。 – dbenham

相关问题