用bat复制指定文件到指定文件目录下的所有文件夹?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用bat复制指定文件到指定文件目录下的所有文件夹?相关的知识,希望对你有一定的参考价值。
比如D盘里3个文件夹,分别为1、2、3.现在桌面上有一个123.txt文件。
现在我自己做一个bat,使其内容是将桌面上的123.txt复制到D盘的3个文件夹中,请问应该如何写代码?
不要以下代码:
@echo off
copy 123.txt D:\1\
copy 123.txt D:\2\
copy 123.txt D:\3\
因为上面那种代码必须写指定的文件夹名,我想让123.txt复制到D盘目录下的所有文件夹,而且还要是在不知道文件夹名的情况下.(这句是废话.~)
这网上看到过这样的:
for /r 目标文件夹 %%a in (.) do (
cd /d %%a
copy /y 目标文件 .
)
pause
可是上面那种也不行,还是需要文件夹名.请各位告诉帮帮我吧.~
可以用的一定追加分数......
1楼的,我试了你的方法。
可以用耶,但是可不可以麻烦你解释一下意思啊。?
实现此功能,使用批处理中的FOR命令即可。
方法如下:
1、首先新建一个扩展名为.BAT的文本文档。
2、将如下内容复制到文本文档内:
for /r d:\\ %%i in (*.exe) do copy %%i c:\\1
3、保存,双击执行即可。
::解释:
::for /f句型——(详见for /?)
::FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
::delims=表示不以空格为间隔
::dir /b/ad/s d:表示列举d盘所有目录
for /f "delims=" %%a in ('dir /b/ad/s d:') do echo copy 123.txt "%%a"本回答被提问者采纳 参考技术B 比如说D:\下有1,2,3,4,5,6,7,8,9,10这十个文件夹
for /L %%i (1,1,10) do copy 123.txt "D:\%%i" 参考技术C 你们傻啊,他说不要填写123.txt ,复制到D盘 可以用通配符
怎么用bat写出指定文件夹下几天前的所有文件
@echo off
::设置目标文件夹
set m=E:\123
del "%m%\*" /f /s /q /a
for /f "delims=" %%i in ('dir /ad /w /b "%m%"') do (
rd /s /q "%m%\%%i"
)
这样的可以删除指定文件夹下的所有文件,但是不能指定时间。求大神们帮帮忙
请先备份再测试
@echo offset "f_p=e:\\123"
set/a n=90
rem 计算前n天日期,闰年按简单4年一闰计 ---- yyykkkyyyy
echo.
set/a y=%date:~,4%,m=1%date:~5,2%-100,d=1%date:~8,2%-100
set/a d-=n,"1/(-d>>31)" 2>nul&&goto :ok
:loop
set/a m-=1,d+=31,y-=!m,m+=!m*12
set/a "d-=!(m-2)*(3-!(y&3))+!(m-4)+!(m-6)+!(m-9)+!(m-11)"
if %d% leq 0 goto :loop
:ok
set/a m+=100,d+=100
set "d_n=%y%-%m:~1%-%d:~1%"
echo 本批处理继续执行将删除%f_p%下%d_n%日及之前的文件
set/p=否则请关闭此窗口!按任意键将开始删除... <nul
pause>nul
cls
cd/d "%f_p%"
echo 正在删除文件
for /r %%i in (*)do if "%%~ti" lss "%d_n%9" del "%%i"&echo %%i
echo;
for /f "delims=" %%i in ('dir/b/s/ad^|sort/r')do (
rd "%%i" 2>nul&&echo 删除文件夹%%i)
pause>nul追问
牛逼 ,厉害。谢谢,就采纳你了。
参考技术A 来个简单一点的:假如需要处理的文件夹路径为:D:\Personal\Desktop\空白记录表\,且只删除两天前的文件(-2即代表2天前),那么:
@echo off
forfiles /p D:\Personal\Desktop\空白记录表\ /s /m *.* /d -2 /c "cmd /c del @file /f"
exit
试用前请备份。 参考技术B rem 指定待删除文件的存放路径
set SrcDir=C:\Test\BatHome
rem 指定天数
set DaysAgo=1
for /f "delims=" %%a in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate') do (
set "RegDateOld=%%a"
)
set RegDateOld=%RegDateOld:~-8%
reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul
>"%temp%\DstDate.vbs" echo LastDate=date()-%DaysAgo%
>>"%temp%\DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>"%temp%\DstDate.vbs" echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo "%temp%\DstDate.vbs"') do (
set "DstDate=%%a"
)
set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%
for /r "%SrcDir%" %%a in (*.*) do (
if "%%~ta" leq "%DstDate%" (
if exist "%%a" (
echo del /f /q "%%a"
)
)
)
reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul
pause 参考技术C 谨慎!
很容易出错的
以上是关于用bat复制指定文件到指定文件目录下的所有文件夹?的主要内容,如果未能解决你的问题,请参考以下文章
请问,如何用bat 删除指定目录下的大小超过100M的文件?比如删除D:\Templates下的超过100M的文件?