Batch file DOS批处理文件,用于移动名称中包含给定单词的文件

Batch file DOS批处理文件,用于移动名称中包含给定单词的文件,batch-file,dos,Batch File,Dos,我在Windows的一个目录中有一组文件,例如: "file 01 WP2001.pdf" "file 02 WP2012.pdf" "file 03 AR2009.pdf" 我想将名称中带有字符串“WP”(区分大小写)的所有文件(即文件01和02)移动到现有文件夹中。尝试以下操作: 如果已经创建了目录,请使用此代码 setlocal ENABLEDELAYEDEXPANSION set /a c=0 FOR %%i in (WP*.pdf) do ( set /a c=c+1 move "%

我在Windows的一个目录中有一组文件,例如:

"file 01 WP2001.pdf"
"file 02 WP2012.pdf"
"file 03 AR2009.pdf"
我想将名称中带有字符串“WP”(区分大小写)的所有文件(即文件01和02)移动到现有文件夹中。

尝试以下操作:

如果已经创建了目录,请使用此代码

setlocal ENABLEDELAYEDEXPANSION
set /a c=0
FOR %%i in (WP*.pdf) do (
set /a c=c+1
move "%%i" "file 0"!c!
)
endlocal
setlocal ENABLEDELAYEDEXPANSION
set /a c=0
FOR %%i in (WP*.pdf) do (
set /a c=c+1
md "file 0"!c!
move "%%i" "file 0"!c!
)
endlocal

如果未创建目录,请使用此代码

setlocal ENABLEDELAYEDEXPANSION
set /a c=0
FOR %%i in (WP*.pdf) do (
set /a c=c+1
move "%%i" "file 0"!c!
)
endlocal
setlocal ENABLEDELAYEDEXPANSION
set /a c=0
FOR %%i in (WP*.pdf) do (
set /a c=c+1
md "file 0"!c!
move "%%i" "file 0"!c!
)
endlocal
  • 将此代码粘贴到记事本中并另存为批处理文件
  • 将批处理文件复制到pdf文件和目录所在的目录
  • 现在单击Batch file.Done

  • 从批处理文件中

    for /f "eol=: delims=" %%F in ('dir /b^|find "WP"') do move /Y "%%F" "someFolder"
    

    如果从命令行运行,则如果需要复制的文件名遵循相同的模式(
    文件
    ,后跟一个空格,后跟两个字符,后跟一个空格,后跟
    WP
    ,后跟四个字符,后跟
    .pdf
    扩展名),则将%%F更改为%F

    ,您可以使用以下单个
    COPY
    命令:

    COPY "source_directory\file ?? WP????.pdf" "destination_directory"
    
    COPY“source\u directory\file??WP???.pdf”“destination\u directory”
    
    没错,Windows和区分大小写。谢谢,应该更清楚。假设使用NTFS,大多数Win32应用程序将无法区分名称相同但大小写不同的文件,我怀疑
    copy
    受此影响。请创建pdf文件备份并尝试批处理。谢谢。这似乎不分青红皂白地移动了所有pdf文件,而不仅仅是带有WP的文件。我试图用findstr命令附加您的代码,但似乎无法让它执行我想要的操作。Windows copy不区分大小写。OP明确要求副本区分大小写。(一个非常奇怪的请求,因为Windows文件名不区分大小写)此外,所有示例都遵循您指定的模式,但实际问题只是要求文件名包含“WP”。不确定实际需求是什么。是的,我假设所有名称都需要遵循相同的模式,我应该立即指定。现在更新我的答案。至于区分大小写,我记得在某个地方读到过,Windows可以在区分大小写模式下运行,只是默认情况下不区分大小写,切换到区分大小写模式时要小心。