2010-07-30 105 views
0

我想创建一个脚本,列出程序返回的文件的名称。蝙蝠:如何提取命令的文件名

该计划被称为ShowFiles.exe,它需要对参数是这样的:

"ShowFiles opened ..." 

所以参数1“打开”和论据2“......”

的结果看起来像这样:

c:\tmp\test1.txt#0 - add default 
c:\tmp\test2.TXT#1 - edit default 

我想要的只是获取文件的名称。

像这样:

test1.txt 

test2.txt 

非常感谢您的帮助。

+0

dir/B有什么问题? – Hut8 2010-07-30 21:56:08

+0

只需要给我们提供您需要使用的数据呢?这里的每个解决方案都会使用'dir'输出并为其量身定制。由于您无法自行找到解决方案,我保证您也无法调整解决方案。 – Joey 2010-07-30 22:02:16

+0

@bow:读他们写的东西。有问题的命令不是'dir',而是别的。 – Joey 2010-07-30 22:02:44

回答

3

您可以使用for /f遍历命令输出:

for /f %%F in ('ShowFiles ...') do ... 

这可能需要一些控制标记化将如何进行选择。在你的情况下,该文件的名称显然是停在#,所以下面应该#分割,只需要第一个标记:

for /f "tokens=1 delims=#" %%F in ('ShowFiles ...') do (
    echo File name: %%F 
    echo File name without path: %%~nxF 
) 

然后可以使用如上面为任何你需要显示的文件名。如果你只需要输出它们,那么简单的echo %%Fecho %%~nxF就足够了。关于这些东西的更多细节可以在help for中找到。