Windows 将序号添加到文件夹中文件名的开头
我在一个文件夹中有很多文件,我想在这个文件夹中每个文件的开头添加序列号。我还希望文件按大小排序,而不是按字母顺序 例如:如果文件“something.mp3”是文件夹中最大的文件,则应将其重命名为“01-something.mp3”。我想在Windows上执行此操作。Bash:Windows 将序号添加到文件夹中文件名的开头,windows,cmd,Windows,Cmd,我在一个文件夹中有很多文件,我想在这个文件夹中每个文件的开头添加序列号。我还希望文件按大小排序,而不是按字母顺序 例如:如果文件“something.mp3”是文件夹中最大的文件,则应将其重命名为“01-something.mp3”。我想在Windows上执行此操作。Bash: I=0; for FILE in `ls -S`; do mv $FILE "$I - $FILE"; I=$((I+1)); done 狂欢节: 由于您的操作系统可能会按字母顺序列出文件,因此我建议在某些时候使用pr
I=0; for FILE in `ls -S`; do mv $FILE "$I - $FILE"; I=$((I+1)); done
狂欢节:
由于您的操作系统可能会按字母顺序列出文件,因此我建议在某些时候使用
printf
(这将生成“0001-file1.mp3”、“0002-file2.mp3”等)。要更改填充0的数量,请在printf%04d中使用另一个数字
N=1
while read -r file
do
mv "$file" "$(printf %04d $N) - $file"
N=$((N+1))
done < "$(ls -S)"
N=1
读取-r文件时
做
mv“$file”“$(printf%04d$N)-$file”
N=$((N+1))
完成<“$(ls-S)”
(或者使用
“$(ls-rS)”
如果您想要反向排序(从大到小)。由于您的操作系统可能会按字母顺序列出文件,我建议在某个时候使用printf
(这将生成“0001-file1.mp3”、“0002-file2.mp3”等)。要更改填充0的数量,请在printf%04d中使用另一个数字
N=1
while read -r file
do
mv "$file" "$(printf %04d $N) - $file"
N=$((N+1))
done < "$(ls -S)"
N=1
读取-r文件时
做
mv“$file”“$(printf%04d$N)-$file”
N=$((N+1))
完成<“$(ls-S)”
(如果您想要反向排序(从大到小),请使用“$(ls-rS)”
但是,不鼓励解析ls
输出。仅当您知道文件名不包含任何异常字符时,才使用此选项
但是,不鼓励解析
ls
输出。仅当您知道文件名不包含任何异常字符时才使用此命令。批处理文件中可以使用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
命令可用于执行整数数学运算,因此您可以找到一种增加计数器的方法,以确定所需的前缀
准备好使用这些命令中的每一个。学习曲线不错,但也不是零
祝您好运!批处理文件中可以使用
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
命令可用于执行整数数学运算,因此您可以找到一种增加计数器的方法,以确定所需的前缀
准备好使用这些命令中的每一个。学习曲线不错,但也不是零
祝你好运!好主意。完成后告诉我们。你用bash标记了这个,你是在要求bash解决方案还是只要求Windows cmd?如果可能的话,我想在Windows上这样做。如果不是,我想在bash中这样做。因此,这不是一个放置工作单并期望它们完成的地方。这不是一种工作方式。好主意。告诉我们,什么时候你完成了。你用bash标记了这个,你是在要求bash解决方案还是只要求Windows cmd?如果可能的话,我想在Windows上这样做。如果不是,我想在bash中这样做。因此,这不是一个放置工作单并期望它们完成的地方。这不是工作方式。我尝试使用批处理脚本运行此操作,但什么都没有发生。我尝试了您的解决方案在Bash中运行得非常好,谢谢!我用Git CMD在Windows上运行了它。您的解决方案在Bash中运行得非常好,谢谢!我用Git CMD在Windows上运行了它。