【问题标题】:Choose last directory in path cmd windows [closed]在路径cmd窗口中选择最后一个目录[关闭]
【发布时间】:2019-08-13 09:25:02
【问题描述】:

相当于linux:ls | tail -1在windows命令提示符下的命令?
假设 dir 打印 3 个文件夹:

2019-08-13_120000  
2019-08-13_120001  
2019-08-13_120002  

我要穿透最后一个目录,这里是: cd 2019-08-13_120002

【问题讨论】:

标签: linux windows cmd


【解决方案1】:

你可以从 cmd 运行

powershell -com "ls | select -Last 1"

其中selectSelect-Object 的别名,lsGet-ChildItem 的别名。如果您只想获取字符串,请使用 powershell -com "(ls | select -Last 1).Name powershell -com "(ls | select -Last 1).FullName

但如果可能,请完全切换到 powershell。可以解决很多cmd中的头疼问题

【讨论】:

【解决方案2】:

windows 中没有真正的尾部功能,但如果您只想要最后一个目录,您可以在 cli 中使用此技巧快速选择它:

SET "_Folder="
FOR /F "Tokens=*" %A in ('
  DIR /AD /O-N /B
  "C:\path\to\folders\*"
') Do @(
  IF Defined _Folder (
     Dir >&0 
  )  ELSE (
    Set "_Folder=%A"
  )
)
CD "%_Folder%"

注意,你不必在循环外做 CD,你可以在 else 条件内做而不是设置变量。

此外,如果仅匹配第一个或最后一个目录,则不需要 IF 逻辑构造,但我将其留在上面是因为我认为在解析逻辑时它可能看起来更清晰。

下面考虑了这两个变化

FOR /F "Tokens=*" %A in ('
  DIR /AD /O-N /B
  "C:\path\to\folders\*"
') Do @(
  CD "%A"
  Dir >&0
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多