我的文件夹中有 80,000 个文件,我需要重命名所有文件
filename.jpg
到
._filename.jpg
在 Windows 环境中,我猜是来自 dos。原因是我已将这些文件从 unix 压缩为 tar.gz 并复制到 windows 中,由于某种原因文件名发生了变化。
你能告诉我执行该命令的命令是什么吗?谢谢
答案1
答案2
以下是使用 PowerShell 的方法:
导航到您的文件夹并运行此命令
Get-ChildItem *.jpg | Rename-Item -newname {"._" + $_.Name}
额外奖励简短版本:
gci *.jpg | ren -newname {"._" + $_.Name}
答案3
我有2个解决方案:
所有文件都位于同一文件夹中
从该文件夹的命令提示符运行以下命令:
for /f "delims=¯" %i in ('dir /b /on') do ren "%i" "._%i"
当子文件夹中有文件并且您想要用所需的字符串替换“n”个前字符时,完整的解决方案:D
- 使用以下命令创建批处理文件
- 将变量参数更改为您想要的
path
:放入""
文件的根路径(例如“C:\documents and settings\user\desktop\new folder”numfirstchars2replace
:将要替换的第一个字符放在一个数字中(在你的情况下为 2)str2put
:将要添加的字符串作为新文件名的前缀(在您的情况下为._
)
- 在与文件所在位置不同的文件夹中运行它
@echo off
::only to tell user what this bat are doing
echo.1.initializing...
::enable that thing to allow, for example, incremental counter in a for loop :)
echo.- EnableDelayedExpansion
SETLOCAL EnableDelayedExpansion
::variables
echo.- variables
:: - place here the absolute root path of your files
set path="put here where are the root folder of your files"
set pathbak=%cd%
set numfirstchars2replace=2
set str2put=._
::go to %path% and its driveletter
echo.- entering the path you want
for /f "delims=¯" %%i in ('echo.%path%') do %%~di
cd %path%
::search all subfolders and save them to a temp file
echo.- searching for subfolders
echo.%path%>%temp%\tmpvar.txt
for /f "delims=¯" %%i in ('dir /s /b /on /ad') do echo."%%i">>%temp%\tmpvar.txt
::execute command for root folder and all found subfolders
echo.
echo.2.executing...
for /f "delims=¯" %%i in (%temp%\tmpvar.txt) do (
cd %%i
echo.- in folder: %%i
for /f "delims=¯" %%j in ('dir /b /on /a-d') do (
set newname=%%j
set newname=!newname:~%numfirstchars2replace%,1000!
echo.- renaming from "%%j" to "%str2put%!newname!"...
ren "%%j" "%str2put%!newname!"
)
)
echo.
echo.3.exiting...
::return to %pathbak% and its driveletter
for /f "delims=¯" %%i in ('echo.%pathbak%') do %%~di
cd %pathbak%
@echo on
答案4
尝试 Powershell(Windows 7 预装):
Get-Childitem /path/to/your/files | foreach-object { move-item $_ $("._" + $_.name) }
(已在我的下载目录中测试过。)
编辑:Siim K 的代码将在每个“._filename.jpg”后附加一个额外的“.jpg”。删除 Siim K 代码中的最后一个“.jpg”,您将获得一个简短、优雅的代码来重命名文件。