批处理脚本:从未知目录中查找和复制文件? [英] Batch scripts: find and copy file from unknown directory?

查看:271
本文介绍了批处理脚本:从未知目录中查找和复制文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要为我的同学做一个批处理文件(实际上,我需要做一个程序的序列,但为了简单的问,我使用批处理文件)。



批处理作业是将计算机中的特定文件复制到批处理文件夹。但问题是我不知道所有我的同学的文件的路径。



这里有我需要的东西:


  1. 帮助我的同学选择它们到该文件的路径。


  2. 复制该文件并将其粘贴到批处理文件的文件夹(包括我的其他程序)中。


  3. 所有其他程式完成工作后,请将该档案复制并取代原始资料夹。

    你有任何脚本可能有帮助吗?

    解决方案

    您可以从此批处理代码开始:

      @echo off 
    标题按名称搜索文件(通配符接受)Hackoo 2014
    mode con cols = 90 lines = 5&颜色9B
    echo(
    设置/ pFileName =请输入要查找的文件的名称(通配符接受):
    echo(
    设置Tmp = Tmp.txt
    设置SearchResult = SearchResult.txt
    调用:BrowseFolder选择源文件夹C:\Program
    设置LocationFolder =%MyFolder%
    echo您选择查看 %FileFile%对于此文件%FileName%
    回声(& cls&颜色0A
    回声(& echo请稍候...搜索%FileName% %LocationFolder%
    其中/ r%LocationFolder%%FileName%>%Tmp%
    Cmd / U / C类型%Tmp%>%SearchResult%
    %Tmp%
    开始%SearchResult%
    :: ******************************* *********************************************
    : BrowseFolder
    set MyFolder =
    set vbs =%temp%\_.vbs
    set cmd =%temp%\_.cmd
    for %% f (%vbs%%cmd%)如果存在,则执行%% f del %% f
    对于%% g in(vbs cmd)如果已定义,则执行%% g set %% g =
    > ;%vbs%echo set WshShell = WScript.CreateObject(WScript.Shell)
    >>%vbs%echo set shell = WScript.CreateObject(Shell.Application)
    > ;%vbs%echo set f = shell.BrowseForFolder(0,%1,0,%2)
    >%vbs%echo if typename(f)=Nothingthen
    & >%vbs%echo wscript.echoset MyFolder = Dialog Cancelled
    >>%vbs%echo WScript.Quit(1)
    >>%vbs%echo end if
    >>%vbs%echo set fs = f.Items():set fi = fs.Item()
    >>%vbs%echo p = fi.Path:wscript.echoset MyFolder =^& p
    cscript // nologo%vbs%> %cmd%
    for / fdelims =%% a in(%cmd%)do %% a
    for %% f in(%vbs%%cmd%)如果存在% del %% f
    for %% g in(vbs cmd)如果定义了%% g set %% g =
    :: ************** **************************************************** **************

    06/2015 at 07:00



      @echo off 
    标题按名称搜索文件复制它(通配符接受)by Hackoo 2015
    mode con cols = 90 lines = 5&颜色9B
    设置/ pFileName =请输入要查找的文件的名称(接受通配符):
    设置SearchResult = SearchResult.txt
    调用:BrowseFolder选择源文件夹 C:\Program
    设置LocationFolder =%MyFolder%
    echo您选择查找%LocationFolder%为此文件%FileName%
    echo(& cls& ;颜色0A
    echo(& echo请等待片刻....在%LocationFolder%上搜索%FileName%
    其中/ r%LocationFolder%%FileName% >%SearchResult%
    Goto:CopyMyFile
    :: ******************************** **********************************************
    :BrowseFolder
    set MyFolder =
    set vbs =%temp%\_.vbs
    set cmd =%temp%\_.cmd
    for %% (%vbs%%cmd%)如果存在,则为%% f del %% f
    对于%% g in(vbs cmd)如果已定义则为%% g set %% g =
    >%vbs%echo set WshShell = WScript.CreateObject(WScript.Shell)
    >>%vbs%echo set shell = WScript.CreateObject(Shell.Application)
    > >%vbs%echo set f = shell.BrowseForFolder(0,%1,0,%2)
    >>%vbs%echo if typename(f)=Nothingthen
    > ;>%vbs%echo wscript.echoset MyFolder = Dialog Cancelled
    >>%vbs%echo WScript.Quit(1)
    >%vbs%echo end if b $ b>>>%vbs%echo set fs = f.Items():set fi = fs.Item()
    >%vbs%echo p = fi.Path:wscript.echo set MyFolder =^& p
    cscript // nologo%vbs%> %cmd%
    for / fdelims =%% a in(%cmd%)do %% a
    for %% f in(%vbs%%cmd%)如果存在% del %% f
    for %% g in(vbs cmd)如果定义了%% g set %% g =
    :: ************** **************************************************** **************
    :CopyMyFile
    Cls
    for / fdelims = *%% a in(%SearchResult%)do %% a%〜dp0& Copy%% a%〜dp0)
    暂停


    I need to make a batch file for my groupmates (actually, I need to make a sequence of the program, but for simple to ask, I use batch file).

    The batch's job is copy a specific file in their computer to the batch's folder. But the problem is I don't know the path to that file of all my groupmates.

    Here are the things I need:

    1. Help my groupmates choose their path to that file. (Maybe just auto-find that file in their computers).

    2. Copy that file and paste it into the batch file's folder (which include my other programs).

    3. After all my other programs finished their job, copy and replace that file to its original folder.

    Do you have any script that might help?

    解决方案

    You can start with this batch code :

    @echo off
    Title Search for a file by name (Wildcard accepted) by Hackoo 2014
    mode con cols=90 lines=5 & color 9B
    echo(
    Set /p "FileName=Please Enter the name of the file to find (Wildcard accepted) : "
    echo(
    Set Tmp=Tmp.txt
    Set SearchResult=SearchResult.txt
    Call :BrowseFolder "Select the Source folder" "C:\Program"
    Set LocationFolder=%MyFolder%
    echo You chose to looking into "%LocationFolder%" for this file "%FileName%"
    echo( & cls & Color 0A
    echo(  & echo  Please Wait for moment .... Searching for "%FileName%" on "%LocationFolder%"
    Where /r "%LocationFolder%" "%FileName%" > %Tmp%
    Cmd /U /C Type %Tmp% > %SearchResult%
    Del %Tmp%
    Start %SearchResult%
    ::******************************************************************************
    :BrowseFolder
        set MyFolder=
        set vbs="%temp%\_.vbs"
        set cmd="%temp%\_.cmd"
        for %%f in (%vbs% %cmd%) do if exist %%f del %%f
        for %%g in ("vbs cmd") do if defined %%g set %%g=
        >%vbs% echo set WshShell=WScript.CreateObject("WScript.Shell") 
        >>%vbs% echo set shell=WScript.CreateObject("Shell.Application") 
        >>%vbs% echo set f=shell.BrowseForFolder(0,%1,0,%2) 
        >>%vbs% echo if typename(f)="Nothing" Then  
        >>%vbs% echo wscript.echo "set MyFolder=Dialog Cancelled" 
        >>%vbs% echo WScript.Quit(1)
        >>%vbs% echo end if 
        >>%vbs% echo set fs=f.Items():set fi=fs.Item() 
        >>%vbs% echo p=fi.Path:wscript.echo "set MyFolder=" ^& p
        cscript //nologo %vbs% > %cmd%
        for /f "delims=" %%a in (%cmd%) do %%a
        for %%f in (%vbs% %cmd%) do if exist %%f del %%f
        for %%g in ("vbs cmd") do if defined %%g set %%g=
    ::******************************************************************************
    

    EDIT : 28/06/2015 at 07:00

    @echo off
    Title Search for a file by name and copy it (Wildcard accepted) by Hackoo 2015
    mode con cols=90 lines=5 & color 9B
    Set /p "FileName=Please Enter the name of the file to find (Wildcard accepted) : "
    Set SearchResult=SearchResult.txt
    Call :BrowseFolder "Select the Source folder" "C:\Program"
    Set LocationFolder=%MyFolder%
    echo You chose to looking into "%LocationFolder%" for this file "%FileName%"
    echo( & cls & Color 0A
    echo(  & echo  Please Wait for moment .... Searching for "%FileName%" on "%LocationFolder%"
    where /r "%LocationFolder%" "%FileName%" > %SearchResult%
    Goto:CopyMyFile
    ::******************************************************************************
    :BrowseFolder
        set MyFolder=
        set vbs="%temp%\_.vbs"
        set cmd="%temp%\_.cmd"
        for %%f in (%vbs% %cmd%) do if exist %%f del %%f
        for %%g in ("vbs cmd") do if defined %%g set %%g=
        >%vbs% echo set WshShell=WScript.CreateObject("WScript.Shell") 
        >>%vbs% echo set shell=WScript.CreateObject("Shell.Application") 
        >>%vbs% echo set f=shell.BrowseForFolder(0,%1,0,%2) 
        >>%vbs% echo if typename(f)="Nothing" Then  
        >>%vbs% echo wscript.echo "set MyFolder=Dialog Cancelled" 
        >>%vbs% echo WScript.Quit(1)
        >>%vbs% echo end if 
        >>%vbs% echo set fs=f.Items():set fi=fs.Item() 
        >>%vbs% echo p=fi.Path:wscript.echo "set MyFolder=" ^& p
        cscript //nologo %vbs% > %cmd%
        for /f "delims=" %%a in (%cmd%) do %%a
        for %%f in (%vbs% %cmd%) do if exist %%f del %%f
        for %%g in ("vbs cmd") do if defined %%g set %%g=
    ::******************************************************************************
    :CopyMyFile
    Cls
    for /f "delims=*" %%a in (%SearchResult%) do (echo Copy "%%a" "%~dp0" & Copy "%%a" "%~dp0")
    Pause 
    

    这篇关于批处理脚本:从未知目录中查找和复制文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆