文件.txt:
C:\Program Files\Folder\file.exe
可以是 .exe、.dll 等。
输出目标:
C:\Program Files\Folder
到目前为止的代码:
for /f "usebackq delims=" %%g in (`type file.txt ^| findstr /vc:".exe"`) do ( echo %%g )
下面的示例假定所有的列出的文件都带有扩展名,(包括周期,随后2
,3
或4
字符)。为了澄清,这意味着它将忽略具有周期的任何文件或不具有周期最后叶目录或端随后1
,5
或多于5
,字符; 但是会拿起这与folowed句点结束最后一片叶子目录2
,3
或4
字符:
@For /F Delims^=^ EOL^= %%G In ('%__AppDir__%findstr.exe /ER "\...$ \....$ \.....$" "file.txt" 2^> NUL')Do @For %%H In ("%%~dpG.")Do @Echo %%~dpnxH
请注意,我findstr.exe
在上面的例子中直接使用了。如果您没有得到预期的结果,则源文件 可能file.txt
是 Unicode。在这种情况下,您应该恢复从type
命令管道内容,如您的原始帖子:
@For /F Delims^=^ EOL^= %%G In ('Type "file.txt" 2^> NUL ^| %__AppDir__%findstr.exe /ER "\...$ \....$ \.....$"')Do @For %%H In ("%%~dpG.")Do @Echo %%~dpnxH
如果文件中的每个项目或您需要的项目都存在于系统中,则可以使代码更加健壮。(但这目前超出了您非常有限的问题标准的范围)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句