我想从命令行重命名多个文件(我使用的是Windows)。 在重命名之前:
fileA.txt
fileB.txt
fileC.txt
重命名后:
1_fileA.txt
2_fileB.txt
3_fileC.txt
顺便说一句,即使我正在使用Windows,但我有像sed,grep,awk这样的工具......
但是我找不到使用它们的方法
答案 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"