如何在文件移动期间移动文件并删除文件名中的连字符?

时间:2014-08-13 09:03:14

标签: windows batch-file

我在一个文件夹中有一个文件列表。我希望它们重命名并移动到另一个文件夹中。我希望从文件名中删除字符-

例如,如果文件是

Some-file-name.jpeg

应该是

Some file name.jpeg

并移动到我选择的文件夹中。

对于知道批次的人来说非常简单。

2 个答案:

答案 0 :(得分:3)

试试这个:

@echo off
setlocal enabledelayedexpansion
set source=Source Directory
set dest=Destination Directory

for %%a in ("%source%\*") do (
    set file=%%~nxa
    set file=!file:-= !
    move /y "%%a" "%dest%\!file!"
)>nul

答案 1 :(得分:1)

您可以使用文件名中的“ - ”循环遍历当前目录中的所有文件。

实施例

如果当前目录包含以下文件:

  • 某些文件-name.jpeg
  • 某些文件-name2.jpeg
  • Some-file-name3.jpeg
  • SomeFileNameWithoutHyphen.jpeg

文件名中带有“ - ”的所有文件将被复制到当前目录中的“target”文件夹:

所以目标目录将包含

  • 某些文件名.jpeg
  • 某些文件名.2.jpeg
  • 某些文件名3.jpeg

代码:

@echo off
setlocal enabledelayedexpansion

rem ------set the name of the target directory---------------------
set /P target="Enter Destination Folder: "
set /a count=0

rem ------loop through all the filesnames in current directory containing "-" ---------------------
for %%i in ("%cd%\*-*") do (
    echo %%i
    set filename=%%~ni
    rem ------Move to target directory and rename ---------------------
    move /y "%%i" "%target%\!filename!">NUL
    ren "%target%\!filename!" "!filename:-= !"
    set /a count=count+1
)
echo.
echo Moved %count% files