将序列前缀添加到文件名

时间:2013-09-13 11:19:42

标签: windows command-line sed awk rename

我想从命令行重命名多个文件(我使用的是Windows)。 在重命名之前:

fileA.txt
fileB.txt
fileC.txt
重命名后

1_fileA.txt
2_fileB.txt
3_fileC.txt
顺便说一句,即使我正在使用Windows,但我有像sed,grep,awk这样的工具...... 但是我找不到使用它们的方法

3 个答案:

答案 0 :(得分:1)

使用cygwin和bash的一种方式:

$ n=1

$ ls
fileA.txt  fileB.txt  fileC.txt

$ for i in *.txt; do mv $i ${n}_${i}; ((n++)); done

$ ls
1_fileA.txt  2_fileB.txt  3_fileC.txt

答案 1 :(得分:1)

您可以使用批处理文件:

@echo off
setlocal enabledelayedexpansion
set i=0
for %%a in (*.*) do (
    set /a i=i+1
    ren %%a !i!%%a
)

将其保存到不同目录中的文件,然后转到文件所在的目录。之后在cmd.exe命令提示符下运行:

call X:\path\to\file.bat

基于ls,awk,xargs和mv:

ls *.* | awk {printf("\"%s\""\x20""\"%d%s\"\n",$0,NR,$0)} | xargs mv

答案 2 :(得分:1)

直接来自命令行:

for /f "delims=: tokens=1,2" %A in ('dir /b *.txt^|findstr /n .') do @ren "%B" "%A_%B"