我正在尝试通过扩展名搜索来获取特定的文件名。
这是我的代码:
for /r "C:\Directory" %%x in (*.msu) do echo "%%x"
运行此代码后得到的结果: C:\Directory\something.msu
我实际想要的是: something.msu
如有任何想法,请提供帮助。
答案 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"
的意思是:不显示目录答案 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"