批处理脚本:从未知目录中查找和复制文件? [英] Batch scripts: find and copy file from unknown directory?
问题描述
我需要为我的同学做一个批处理文件(实际上,我需要做一个程序的序列,但为了简单的问,我使用批处理文件)。
批处理作业是将计算机中的特定文件复制到批处理文件夹。但问题是我不知道所有我的同学的文件的路径。
这里有我需要的东西:
-
帮助我的同学选择它们到该文件的路径。
-
复制该文件并将其粘贴到批处理文件的文件夹(包括我的其他程序)中。
-
所有其他程式完成工作后,请将该档案复制并取代原始资料夹。/ ol>
你有任何脚本可能有帮助吗?
解决方案您可以从此批处理代码开始:
@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:
Help my groupmates choose their path to that file. (Maybe just auto-find that file in their computers).
Copy that file and paste it into the batch file's folder (which include my other programs).
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屋!