【问题标题】:CMD/Powershell: Remove first four letters from folder name in pathCMD / Powershell:从路径中的文件夹名称中删除前四个字母
【发布时间】:2011-08-08 21:02:47
【问题描述】:

我有一个文件夹,里面有很多文件夹。 ATM 这些文件夹的名称为“100_0103”、“102_1212”等。我想从路径中的所有文件夹中删除那些“100_”和“102_”等。

我想在 CMD 或 Powershell 中执行此操作。

【问题讨论】:

  • 有人吗?我真的很感谢这个问题的帮助:)

标签: powershell cmd directory


【解决方案1】:

对于 PS,这样的事情应该可以工作。

dir | ? { $_.PSIsContainer } | % { mv $_ -Destination ($_.Name.Substring(4)) }

展开

Get-ChildItem | Where-Object { $_.PSIsContainer } | ForEach-Object { Move-Item $_ -Destination ($_.Name.Substring(4)) }

【讨论】:

  • 这很棒!但是在使用这个脚本之后,文件夹名称就像“DDMM”,我的意思是日和月,但我希望它是“MMDD”,这样对文件夹进行排序会更容易。所以新的问题是如何改变2对2个数字的位置,DDMM -> MMDD
  • @Marko - 您应该能够构建上面的示例。只需更改 -Destination 参数(括号内的位)。您甚至可以使用对 Substring 的调用来重新排序文件名的字符。
【解决方案2】:

试试这个:

@echo off
set IN=100_0103

set OUT=%IN:~4%
echo Converted %IN%, got %OUT%

我得到这个输出:

Converted 100_0103, got 0103

我相信这就是你想要的。更多魔法见here

【讨论】:

  • 嗯,我不明白它会如何更改文件夹名称。
  • @Marko:它不会,它只是显示如何提取子字符串。
猜你喜欢
  • 2022-01-12
  • 1970-01-01
  • 2015-06-02
  • 1970-01-01
  • 1970-01-01
  • 2011-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多