我想从命令行重命名多个文件(我正在使用 Windows)。重命名前:
fileA.txt
fileB.txt
fileC.txt
重命名后:
1_fileA.txt
2_fileB.txt
3_fileC.txt
顺便说一句,即使我使用的是 Windows,但我有 sed、grep、awk 之类的工具……但我找不到使用它们的方法
我想从命令行重命名多个文件(我正在使用 Windows)。重命名前:
fileA.txt
fileB.txt
fileC.txt
重命名后:
1_fileA.txt
2_fileB.txt
3_fileC.txt
顺便说一句,即使我使用的是 Windows,但我有 sed、grep、awk 之类的工具……但我找不到使用它们的方法
直接从命令行:
for /f "delims=: tokens=1,2" %A in ('dir /b *.txt^|findstr /n .') do @ren "%B" "%A_%B"
使用 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
您可以使用批处理文件:
@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