如何使用扩展名查找文件名

时间:2019-07-16 07:34:28

标签: windows batch-file

我正在尝试通过扩展名搜索来获取特定的文件名。

这是我的代码:

for /r "C:\Directory" %%x in (*.msu) do echo "%%x"

运行此代码后得到的结果: C:\Directory\something.msu

我实际想要的是: something.msu

如有任何想法,请提供帮助。

2 个答案:

答案 0 :(得分:0)

为什么不使用基本x = data.frame( id = c(1, 2, 3, 4, 5), sex = c(1, 0, 1, 0, 1), migration = c(0, 1, 0, 1, 0), handicap = c(0, 1, 1, 1, 0), east = c(0, 1, 1, 1, 0), fear = c(1, 3, 4, 6, 3), expectation = c(2, 3, 2, 5, 4)) 命令的/S开关:它进入所有子目录:

dir

=>这给出了很多解释。如果要过滤(仅具有文件名):

dir /S *.msu

=> dir /S *.msu | findstr ".msu" 是Windows上的findstr

如@aschipfl所述,此命令甚至更好:

grep

最重要:

  • dir /S /N /A:-D *.msu | findstr /I /E "\.msu" 的意思是:不显示目录
  • / I:不区分大小写

答案 1 :(得分:0)

for变量具有修饰符,因此您可以精确定义所需文件名的哪一部分。例如,%%~n_表示 N %%~x_表示E x 张力,依此类推(有关完整列表,请参见for /?可能的修饰符)。您可以将它们组合为%%~nx_,以得到 N 个加E x 张力。

建议(尽管不是强制性的)使用大写变量名,以避免与修饰符(或小写变量名和大写修饰符)混淆,因此要达到目标,请使用:

for /r "C:\Directory" %%X in (*.msu) do echo "%%~nxX"

(推荐语法)或:

for /r "C:\Directory" %%x in (*.msu) do echo "%%~NXx"

也可以正常工作,但是如果您不习惯它,可能会感到困惑:

for /r "C:\Directory" %%x in (*.msu) do echo "%%~nxx"