更改目录中所有文件的名称?
Change names of all files in a directory?
我正在使用 Windows 7 64 位家庭版。我在一个以特定字符串开头的文件夹中有超过 100 个文件。我想删除这个字符串。
Example: abc_file1.txt, abc_file2.txt, abc_file3.txt and so on. I want
the filenames to be changed to file1.txt, file2.txt, file3.txt etc.
但是,手动执行此操作需要花费大量时间。有没有更简单快捷的方法来实现这个。
我在与 abc_*.txt 文件相同的目录中创建了 rename.bat。
rename.bat
echo off
for /r %%i in (*.txt) do rename "abc*.txt" "////*.txt"
样本运行
C:\Users\jgosalia\Desktop\directory>dir
Directory of C:\Users\jgosalia\Desktop\directory
07/12/2017 11:40 PM <DIR> .
07/12/2017 11:40 PM <DIR> ..
07/12/2017 11:35 PM 0 abc_file1.tx
07/12/2017 11:35 PM 0 abc_file2.tx
07/12/2017 11:35 PM 0 abc_file3.tx
07/12/2017 11:35 PM 0 abc_file4.tx
07/12/2017 11:35 PM 0 abc_file5.tx
07/12/2017 11:35 PM 0 abc_file6.tx
07/12/2017 11:39 PM 64 rename.bat
7 File(s) 64 bytes
2 Dir(s) 269,494,484,992 bytes free
C:\Users\jgosalia\Desktop\directory>rename.bat
C:\Users\jgosalia\Desktop\directory>echo off
C:\Users\jgosalia\Desktop\directory>dir
Directory of C:\Users\jgosalia\Desktop\directory
07/12/2017 11:40 PM <DIR> .
07/12/2017 11:40 PM <DIR> ..
07/12/2017 11:35 PM 0 file1.txt
07/12/2017 11:35 PM 0 file2.txt
07/12/2017 11:35 PM 0 file3.txt
07/12/2017 11:35 PM 0 file4.txt
07/12/2017 11:35 PM 0 file5.txt
07/12/2017 11:35 PM 0 file6.txt
07/12/2017 11:39 PM 64 rename.bat
7 File(s) 64 bytes
2 Dir(s) 269,494,484,992 bytes free
C:\Users\jgosalia\Desktop\directory>
您可以使用 Python 。
import os
def renaming_all_files():
file_list=os.listdir(r"C:\example\directory")
for file_name in file_list:
os.rename(file_name,file_name.translate(None,"abc"))
renaming_all_files()
PowerShell 中的另一种方式。
$ps = 'abc_'
Get-ChildItem -File -Filter ${ps}*.txt |
ForEach-Object { Move-Item $_.FullName $($_.Name -replace $ps,'') }
它可以从 .bat 脚本中调用。
powershell -NoProfile -Command "$ps = 'abc_'; Get-ChildItem -File -Filter ${ps}*.txt | ForEach-Object { Move-Item $_.FullName $($_.Name -replace $ps,'') }"
大家的回复让我不知所措。由于我没有扎实的编程背景,所以我一直在寻找一种简单的方法,或者更确切地说是一种可以为我做这件事的自动化软件。
Bulk Rename Utility 是一款很棒的软件,它不仅可以删除字符串,还可以删除很多我手动需要几个小时才能完成的东西。
我正在使用 Windows 7 64 位家庭版。我在一个以特定字符串开头的文件夹中有超过 100 个文件。我想删除这个字符串。
Example: abc_file1.txt, abc_file2.txt, abc_file3.txt and so on. I want the filenames to be changed to file1.txt, file2.txt, file3.txt etc.
但是,手动执行此操作需要花费大量时间。有没有更简单快捷的方法来实现这个。
我在与 abc_*.txt 文件相同的目录中创建了 rename.bat。
rename.bat
echo off
for /r %%i in (*.txt) do rename "abc*.txt" "////*.txt"
样本运行
C:\Users\jgosalia\Desktop\directory>dir
Directory of C:\Users\jgosalia\Desktop\directory
07/12/2017 11:40 PM <DIR> .
07/12/2017 11:40 PM <DIR> ..
07/12/2017 11:35 PM 0 abc_file1.tx
07/12/2017 11:35 PM 0 abc_file2.tx
07/12/2017 11:35 PM 0 abc_file3.tx
07/12/2017 11:35 PM 0 abc_file4.tx
07/12/2017 11:35 PM 0 abc_file5.tx
07/12/2017 11:35 PM 0 abc_file6.tx
07/12/2017 11:39 PM 64 rename.bat
7 File(s) 64 bytes
2 Dir(s) 269,494,484,992 bytes free
C:\Users\jgosalia\Desktop\directory>rename.bat
C:\Users\jgosalia\Desktop\directory>echo off
C:\Users\jgosalia\Desktop\directory>dir
Directory of C:\Users\jgosalia\Desktop\directory
07/12/2017 11:40 PM <DIR> .
07/12/2017 11:40 PM <DIR> ..
07/12/2017 11:35 PM 0 file1.txt
07/12/2017 11:35 PM 0 file2.txt
07/12/2017 11:35 PM 0 file3.txt
07/12/2017 11:35 PM 0 file4.txt
07/12/2017 11:35 PM 0 file5.txt
07/12/2017 11:35 PM 0 file6.txt
07/12/2017 11:39 PM 64 rename.bat
7 File(s) 64 bytes
2 Dir(s) 269,494,484,992 bytes free
C:\Users\jgosalia\Desktop\directory>
您可以使用 Python 。
import os
def renaming_all_files():
file_list=os.listdir(r"C:\example\directory")
for file_name in file_list:
os.rename(file_name,file_name.translate(None,"abc"))
renaming_all_files()
PowerShell 中的另一种方式。
$ps = 'abc_'
Get-ChildItem -File -Filter ${ps}*.txt |
ForEach-Object { Move-Item $_.FullName $($_.Name -replace $ps,'') }
它可以从 .bat 脚本中调用。
powershell -NoProfile -Command "$ps = 'abc_'; Get-ChildItem -File -Filter ${ps}*.txt | ForEach-Object { Move-Item $_.FullName $($_.Name -replace $ps,'') }"
大家的回复让我不知所措。由于我没有扎实的编程背景,所以我一直在寻找一种简单的方法,或者更确切地说是一种可以为我做这件事的自动化软件。
Bulk Rename Utility 是一款很棒的软件,它不仅可以删除字符串,还可以删除很多我手动需要几个小时才能完成的东西。