脚本搜索字符串并将文件复制到另一个位置

时间:2015-06-17 11:54:26

标签: batch-file vbscript copy find

我需要基本上根据文件名的字符串将文件从一个文件夹匹配到网络上的文件夹。

文件名中的相似性将提供我将文件从源文件夹复制到的目标文件夹。

所以示例:

c:\

上的文件夹

C:\ TESTFILE

有许多以Cxxxxxx开头的文件(这些文件是pdf,JPG,xls或doc)

然后我需要使用以Cxxxxxx

开头的名称字符串从该位置复制文件

到网络位置的文件夹:

网络位置:

\ MYDOMAIN \ myshare的\存档\

存档文件夹有很多子文件夹,因此我需要在找到该文件后搜索存档文件夹中相同的字符串文件名Cxxxxx我需要将文件从C:\ Testfile复制到找到的位置。

我如何手动执行此操作:

我进入文件夹C:\ Testfile我复制文件名C100001

然后我转到网络共享:

\ MYDOMAIN \ myshare的\存档\

并搜索C100001

从结果中打开位置

\ MYDOMAIN \ myshare的\存档\ 2015 \可以\公司\

并将文件C100001粘贴到该位置

不幸的是我必须对c:\ Testfile中的每个文件执行此操作,因此有助于此操作的脚本将非常合适。

我尝试使用批处理文件的简单代码来查找并将确切文件从一个位置复制到另一个位置:

@echo off
for /f "delims=" %%i in ('dir /s /b /a-d C:\Testfile\textfile.txt') do copy /b "%%~i" "C:\Testfile\Test 2"

1 个答案:

答案 0 :(得分:0)

尝试使用命令 Where.exe 作为字符串输入接受通配符的批处理:

enter image description here

@echo off
Mode con cols=75 lines=5 & color 0A
echo(
Set /p "Location=Enter the folder location where do you want to serach> "
cls & echo(
echo You chose this location "%Location%"
echo(
Set /p "FileName=Enter the file name to looking for> "
Mode con cols=90 lines=11
Set SearchResult=SearchResult.txt
echo( & cls
echo(  & echo  Please Wait for moment .... Searching for "%FileName%" on "%Location%"
where /R "%Location%" "%FileName%" > %SearchResult%
Set Destination=e:\TestCopyDestination
For /f %%a "delims=*" in (%SearchResult%) Do (echo copy "%%a" "%Destination%" & Copy "%%a" "%Destination%")
pause
start %SearchResult%

编辑:2015年6月17日23:20

尝试第二批:

@echo off
set Location=c:\TestFile
Set Destination=c:\TestFile\Test 2
Set FileName=*.*
Set SearchResult=SearchResult.txt
Where /R "%Location%" "%FileName%" > %SearchResult%
For /f "delims=*" %%a in (%SearchResult%) Do (If Not Exist "%Destination%\%%~na" MD "%Destination%\%%~na")
For /f "delims=*" %%b in (%SearchResult%) Do (echo Copy "%%b" "%Destination%\%%~nb" & Copy /-Y "%%b" "%Destination%\%%~nb")
pause
Explorer "%Destination%"