将序列号添加到文件夹中文件名的开头

时间:2017-08-02 10:51:22

标签: windows cmd

我在文件夹中有很多文件,我想在此文件夹中的每个文件的开头添加序列号。我还希望文件按其大小排序,而不是按字母顺序排列。

例如:file" something.mp3"应重命名为" 01 - something.mp3"如果它是文件夹中最大的文件。我想在Windows上这样做。

4 个答案:

答案 0 :(得分:1)

击:

I=0; for FILE in `ls -S`; do mv $FILE "$I - $FILE"; I=$((I+1)); done

答案 1 :(得分:1)

ls -1S | awk '{print "mv \"" $0 "\" \""NR "_" $0"\";"}' | bash

但是不鼓励解析ls输出。仅当您知道文件名不包含任何异常字符时才使用此选项。 Read more here

答案 2 :(得分:0)

由于您的操作系统可能按字母顺序列出文件,我建议在某些时候使用printf(这将生成" 0001 - file1.mp3"," 0002 - file2.mp3&#34 ;等)。要更改填充0的数量,请使用printf%0 4 d中的其他数字。

N=1  
while read -r file
do
  mv "$file" "$(printf %04d $N) - $file"
  N=$((N+1))
done < "$(ls -S)"

(如果您想要反向排序(从最大到最小),请使用"$(ls -rS)"

答案 3 :(得分:0)

可以在批处理文件中使用FOR命令来确定文件大小:

for %%F in (*.mp3) do echo [%%F] is [%%~zF] bytes

但是,您需要做一些工作才能使其正确排序,因为大小10在文本排序中位于大小2之前。

DIR命令可用于按大小顺序列出文件:

dir /os *.mp3
dir /o-s *.mp3
dir /b /o-s *.mp3 > filesbysize.txt

然后您可以使用FOR /F来读取该文件并开始执行重命名逻辑。

SET /A命令可用于执行整数数学,因此您可以找到一种增加计数器的方法,以确定您想要的前缀。

准备好玩这些命令。学习曲线不是很糟糕,但并不是零。

祝你好运!