批处理/电源shell脚本,用于根据文件名和移动文件创建文件夹

时间:2015-06-08 15:45:30

标签: batch-file

我有几个文件的名称如" Axis_Master Group_First_Report_201312.xlsx", Axis_Master Group_second_Report_201312.xlsx。 我需要一个脚本来读取文件名,并根据文件名,创建文件夹并将文件移动到该文件夹​​中。 在上面的例子中,我需要将第一个文件移动到名为Axis的文件夹中,并且在Axis中,它应该被移动到文件夹First。 对于第二个文件,需要将其移动到相同的Axis文件夹,但应将其移动到新文件夹" second"。 请帮忙。 提前致谢。

2 个答案:

答案 0 :(得分:2)

我假设所有文件都匹配*_*_*_*.xlsx,并且您希望第一个和第三个令牌使用_作为分隔符。

第一个FOR只是迭代所有匹配的文件。随后的FOR / F解析出第一个和第三个令牌。反复尝试多次创建文件夹永远不会受到伤害。我只是通过将stderr重定向到nul来隐藏任何错误消息。

@echo off
for %%F in (*_*_*_*.xlsx) do for /f "tokens=1,3 delims=_" %%A in ("%%F") do (
  md "%%A\%%B" 2>nul
  move "%%F" "%%A\%%B"
)

答案 1 :(得分:0)

此代码将与模式val list = io.StdIn.getLines.drop(1).map(_.toInt).toList 匹配的所有文件移动到文件夹"Axis_Master Group_$1_$2.$3"中,并将其重命名为axis\$1

$2.$3