从许多文件的名称中删除一些东西?

时间:2016-11-02 21:05:19

标签: powershell batch-file

我有很多名为

的文件
Files_01(some text).png
Files_02(some different text).png
Files_03(some other text).png
Files_04(totally different text).png

我正在寻找的方法是删除括号中的所有内容,以便我留下:

Files_01.png
Files_02.png
etc.

我尝试了以下操作,但它没有删除括号中的文字:

Ar = zeros(size(A));
count = 1;
for ii = 1 : size(A,1) 
    for jj = 1 : size(A,2)
        for kk = 1 : size(A,3)
            Ar(ii,jj,kk,:) = B{count};
            count = count + 1;
        end
    end
end

3 个答案:

答案 0 :(得分:4)

这就是我完成任务的方式。我从目录中读取文件对象,然后检查文件名是否包含括号。如果名称有,我用空字符串替换括号和中间的任何文本。然后调用Rename-Item并将没有括号的新文件名传递给它。

:desc

答案 1 :(得分:0)

试试这样:

@echo off
set "$ext=.png"

for /f "delims=" %%b in ('dir /b/a-d *%$ext%') do for /f "tokens=1 delims=()" %%c in ('echo %%b') do ren "%%~nb%$ext%" "%%~nc%$ext%"

答案 2 :(得分:0)

在powershell中我可能会创建这样的东西:

$myFolder = "C:\Users\Aarron\Pictures\"

Foreach ($file in Get-Childitem $myFolder\*.png)
{
    $ReName = $file.basename.split("(")[0] + $file.extension
    Rename-Item $file.FullName $ReName
}

......以及可能的批处理解决方案:

@Echo Off
Set "myFolder=C:\Users\Aarron\Pictures\"
For %%A In ("%myFolder%\*.png") Do Call :Sub "%%~dpA" "%%~nA" "%%~xA"
Exit/B
:Sub
Set "ReName=%~2"
Set ReName=%ReName:(=&:%
Ren "%~1%~2%~3" "%ReName%%~3"