如何在CMD下把指定文件复制到指定文件夹内?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在CMD下把指定文件复制到指定文件夹内?相关的知识,希望对你有一定的参考价值。
参考技术A (一)COPY文件复制命令
1.功能:拷贝一个或多个文件到指定盘上。
2.类型:内部命令
3.格式:COPY
[源盘][路径]〈源文件名〉[目标盘][路径][目标文件名]
4.使用说明:
(1)COPY是文件对文件的方式复制数据,复制前目标盘必须已经格式化;
(2)复制过程中,目标盘上相同文件名称的旧文件会被源文件取代;
(3)复制文件时,必须先确定目标般有足够的空间,否则会出现;insufficient的错误信息,提示磁盘空间不够;
(4)文件名中允许使用通配举“*”“?”,可同时复制多个文件;
(5)COPY命令中源文件名必须指出,不可以省略。
(6)复制时,目标文件名可以与源文件名相同,称作“同名拷贝”此时目标文件名可以省略;
(7)复制时,目标文件名也可以与源文件名不相同,称作“异名拷贝”,此时,目标文件名不能省略;
(8)复制时,还可以将几个文件合并为一个文件,称为“合并拷贝”,格式如下:COPY;[源盘][路径]〈源文件名1〉〈源文件名2〉…[目标盘][路径]〈目标文件名〉;
(9)利用COPY命令,还可以从键盘上输入数据建立文件,格式如下:COPY
CON
[盘符:][路径]〈文件名〉;
(10)注意:COPY命令的使用格式,源文件名与目标文件名之间必须有空格!
(二)XCOPY——目录复制命令
1.功能:复制指定的目录和目录下的所有文件连同目录结构。
2.类型:外部命令
3.格式:XCOPY
[源盘:]〈源路径名〉[目标盘符:][目标路径名][/S][/V][/E]
4.使用说明:
(1)XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝隐藏文件和系统文件;
(2)使用时源盘符、源目标路径名、源文件名至少指定一个;
(3)选用/S时对源目录下及其子目录下的所有文件进行COPY。除非指定/E参数,否则/S不会拷贝空目录,若不指定/S参数,则XCOPY只拷贝源目录本身的文件,而不涉及其下的子目录;
(4)选用/V参数时,对的拷贝的扇区都进行较验,但速度会降低。
批处理如何在指定文件夹内搜索某个关键字,包含这个关键字的文件或文件夹要删除?
文件夹包含多层文件夹,搜索一个关键词,把包含这个关键词的文件或文件夹删除掉
不清楚你的实际文件/情况,仅以问题中的样说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI/GB2312,跟要处理的文件或文件夹放一起双击运行
<# :cls&echo off&cd /d "%~dp0"&mode con lines=5000
rem 查找并删除当前目录下所有名称中包含有指定关键字/指定字符的文件和文件夹
set #=Any questions&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "self=%~f0"
powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$keywords=@"
关键字1
关键字2
关键字3
关键字n
"@;
$self=get-item -literal $env:self;
$current=$self.Directory.FullName.trimend('\\');
$arr=$keywords.toLower().trim("`r`n") -split '[\\r\\n]+';
$files=@(dir -literal $current -recurse|?$_.FullName -ne $self.FullName);
for($i=0;$i -lt $files.length;$i++)
if(test-path -literal $files[$i].FullName)
$ismatch=$false;
$name=$files[$i].Name.toLower();
for($j=0;$j -lt $arr.length;$j++)
if($name.Contains($arr[$j]))$ismatch=$true;break;
if($ismatch)
write-host $files[$i].FullName;
if($files[$i] -is [System.IO.FileInfo])
remove-item -literal $files[$i].FullName -force -ErrorAction SilentlyContinue;
else
remove-item -literal $files[$i].FullName -recurse -force -ErrorAction SilentlyContinue;
参考技术A
您可以使用批处理的 forfiles 命令来在指定的文件夹内搜索某个关键字,并删除包含这个关键字的文件或文件夹。具体的做法如下:
在批处理文件中,首先使用 cd 命令切换到要搜索的文件夹所在的目录。
然后,使用 forfiles 命令来进行搜索。该命令的语法如下:
forfiles /P <path> /S /M *<keyword>* /C "cmd /c del /Q @path"
其中,
/P 参数指定要搜索的文件夹路径,例如 /P C:\\my_folder。
/S 参数表示递归搜索子目录。
/M 参数指定要搜索的文件名关键字,例如 /M *keyword*。这里的 * 符号表示任意字符,因此搜索的结果会包含以关键字开头或结尾的文件名。
/C 参数指定对找到的文件进行的操作,即删除这些文件。在这里,我们使用 cmd /c del /Q @path 来删除文件。
例如,下面的批处理命令会在 C 盘的 my_folder 文件夹内递归搜索以 keyword 开头或结尾的文件,并删除它们:
cd C:\\
forfiles /P my_folder /S /M *keyword* /C "cmd /c del /Q @path"
请注意,使用 forfiles 命令删除文件
打开文本编辑器,例如记事本,并输入以下内容:
@echo off
rem 设置搜索路径和关键字
set searchPath=c:\\test
set searchKey=keyword
rem 查找包含关键字的文件
for /f "delims=" %%i in ('dir /b /s /a-d "%searchPath%" ^| findstr /i /c:"%searchKey%"') do (
rem 删除包含关键字的文件
del "%%i"
)
rem 查找包含关键字的文件夹
for /f "delims=" %%i in ('dir /b /s /ad "%searchPath%" ^| findstr /i /c:"%searchKey%"') do (
rem 删除包含关键字的文件夹
rd "%%i" /s /q
)
保存文件为 delete.bat,并将文件拖拽到命令行窗口中,按回车键运行批处理文件
你好 请问如果匹配的字段在一个文本的列表里该怎么弄
追答不好意思 我不太明白你的问题,你的意思是在子文件夹里吗?
追问就是需要匹配的关键词很多 需要放在文本里面 上面的批处理该怎么修改
本回答被提问者采纳以上是关于如何在CMD下把指定文件复制到指定文件夹内?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用bat批处理或cmd,:将一个文件复制为“多个副本“(增量备份,自动重命名)到指定目录