一天一篇批处理之——Part3:复制/移动文件命令move,copy,xcopy
一,move
Move是一个移动文件/文件夹的命令
例1.1
move a.txt \file\
move file \file2\
显示:
移动了1个文件
(即a.txt文件被移动到『file』文件夹中)
移动了1个目录
(即『file』文件夹又被移动到了『file2』文件夹中)
最终会在『file2』文件夹中看到『file』文件夹,在『file』文件夹中看到文件a.txt
注:当使用move语句时目标文件夹必须能找到,不支持新建文件夹,但是指向若是文件(该指向的文件并不存在)则会起到文件重命名的效果。
例1.2
move a.txt a2.bat
显示:
移动了1个文件
(实际效果是将a.txt文件变为a2.bat文件)
二,copy
Copy是一个复制文件的命令
例2.1
copy a.txt \file\
copy file \file2\
显示:
复制了1个文件
(即a.txt文件被复制到『file』文件夹中)
复制了1个文件
(即『file』文件夹中的所有文件又被复制到了『file2』文件夹中)
最后会在『file2』文件夹中看到两个a.txt文件,在『file』文件夹中看到一个a.txt文件。但是『file』文件夹本身不会被复制到『file2』中去。
三,Xcopy 与copy区别:
Xcopy 支持文件/文件夹新建,比如要将a.txt文件拷贝到『file』文件夹中,若所在路径没有『file』这个文件或者文件夹的情况下执行这两个命令区别如下,
例3.1:
copy a.txt \file\
显示:
系统找不到指定路径
已复制 0个文件
例3.2:
Xcopy a.txt \file\
显示:
E:a.txt
复制了1个文件
这时在E盘(脚本所在路径下)会自动创建『file』文件夹,并将a.txt文件复制进去。
当然如果file后面去掉斜杠『\』,系统要求做出判断是建立文件还是文件夹
例3.3:
Xcopy a.txt \file
显示:
目标\file是文件名
还是目录名
<F=文件,D=目录>?
这时按D则会E盘(脚本所在路径下)会自动创建『file』文件夹,并将a.txt文件复制进去。
PS:纯手工制作,新人一枚,一起学习,个人笔记,如有不妥,感谢指正!
一天一篇批处理之——Part3:复制/移动文件命令move,copy,xcopy一,moveMove是一个移动文件/文件夹的命令例1.1move a.txt \file\move file \file2\显示:移动了1个文件(即a.txt文件被移动到『file』文件夹中)移动了1个目录(即『file』文件夹又被移动到了『file2』文件夹中)最终会在『file2
将批量
移动
文件
至指定
文件
夹.bat及所有需
移动
至指定
文件
夹的
文件
放在同一个
文件
夹里,选中批量
移动
文件
至指定
文件
夹.bat右键编辑,按文档中的格式,处理好
文件
名 及 对应
文件
夹,可借助excel批量处理,保存,关闭。
双击批量
移动
文件
至指定
文件
夹.bat,即可完成批量
移动
指定
文件
至指定
文件
夹。
下载地址:(访问密码: 52...
@echo off #从本行开始关闭回显。一般
批处理
第一行都是这个
echo on #从下一行开始打开回显
echo #显示当前是 echo off 状态还是 echo on 状态
echo. #输出一个”回车换行”,空白行
#(同echo, echo; echo+ echo[ echo] echo/ echo)
2 errorlevel
echo %error
要使用 Windows
批处理
命令
移动
一个
文件
,你需要使用
命令
“move”,它可以将
文件
从一个位置
移动
到另一个位置。例如,如果你想将
文件
“example.txt”从当前目录
移动
到“C:\temp”,你可以在
命令
行中输入“move example.txt C:\temp”。
- `/m`:指定要查找的
文件
名匹配模式,这里是所有
文件
。
- `/d -3`:指定
文件
创建时间超过 3 天的
文件
。
- `/c`:指定要执行的
命令
,这里是删除
文件
。
- `@path`:表示
文件
的完整路径。
请注意,上面的代码仅适用于 Windows 系统。如果您使用的是其他系统,请查找相应的
命令
。
### 回答2:
实现上述功能,可以使用
批处理
脚本
来进行操作。以下是一个可以实现删除/备份目录下创建时间超过3天的
文件
的
批处理
脚本
:
```
batch
@echo off
set "target_dir=C:\path\to\your\directory" // 设置目标目录
set cutoff_date=%date%
powershell -command "& { $limit=(Get-Date).AddDays(-3); Get-ChildItem '%target_dir%' -Recurse | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | ForEach-Object { $_.FullName } }" >archive.txt
for /f "delims=" %%G in (archive.txt) do (
echo %%G
REM 备份操作
xcopy
"%%G" "C:\path\to\backup\directory"
REM 删除操作
del "%%G" /q /f
del archive.txt
解释说明:
1. 首先,我们需要将目标目录设置为“target_dir”。将其替换为你要操作的目标目录的实际路径。
2. 接下来,使用PowerShell
命令
来获取目标目录中所有创建时间早于3天的
文件
的路径,并将其输出到一个名为“archive.txt”的
文件
中。
3. 然后,使用for循环逐行读取“archive.txt”
文件
中的每个
文件
路径,并执行相应的操作。
- 若要备份
文件
,可以使用“
xcopy
”
命令
,将
文件
复制
到一个备份目录中,将"C:\path\to\backup\directory"替换为你要备份到的实际路径。
- 若要删除
文件
,可以使用“del”
命令
,删除
文件
,其中“/q”参数表示安静模式(不显示确认提示),“/f”参数表示强制删除只读
文件
。
4. 最后,删除“archive.txt”
文件
。
请注意,此
脚本
使用了PowerShell
命令
来获取创建时间早于3天的
文件
的路径。因此,确保你的系统支持PowerShell。如果不支持PowerShell,可以使用其他方法来实现相同的功能。
### 回答3:
批处理
是一种用来自动执行一系列
命令
的
脚本
。您可以编写一个
批处理
来删除或备份目录下创建时间超过3天的
文件
。
下面是一个简单的
批处理
示例,用于删除/backup目录下创建时间超过3天的
文件
:
```
batch
@echo off
setlocal
set "backup_dir=C:\backup"
set "days=3"
for /f "delims=" %%a in ('dir /b /a:-d-h-s "%backup_dir%\*" ^| findstr /r /i /l /c:"^[^ ]* *[0-9]* \[/][0-9]*.*"') do (
for /f "usebackq tokens=2,* delims= " %%b in (`dir /T:C "%backup_dir%\%%a" ^| findstr /v "^[^0-9]"`) do (
call :comparedate "%%b %%c"
if !datediff! gtr %days% (
echo Deleting file: "%%a"
del "%backup_dir%\%%a" /F
endlocal
goto :eof
:comparedate
setlocal
set "targetdate=%~1"
set "currdate=%date% %time%"
set "targetdate=!targetdate:,=.!"
set "currdate=!currdate:,=.!"
for /f "tokens=1-6 delims=." %%a in ("!targetdate! !currdate!") do (
set /a "yy1=10000%%a%%10000, mm1=100%%b%%100, dd1=100%%c%%100, hh1=100%%d%%100, nn1=100%%e%%100, ss1=100%%f%%100"
set /a "datediff=(yy1-yy)*365+(mm1-mm)*30+(dd1-dd)"
endlocal & set "datediff=%datediff%"
goto :eof
此
批处理
脚本
首先设置了变量`backup_dir`为备份目录的路径,设置`days`为期望超过多少天的阈值。然后,它使用`for`循环遍历`dir`
命令
查找到的目录下的所有
文件
。使用`findstr`筛选出创建日期信息。然后,
批处理
将获取的日期与当前日期进行比较,并计算它们之间的日期差。如果日期差大于`days`,则使用`del`
命令
删除
文件
。
使用这个
批处理
前,请确保将`backup_dir`设置为要处理的实际备份目录,并根据需要更改`days`参数。请注意,
批处理
脚本
具有潜在的风险,因此,请谨慎测试和使用。
希望这对您有帮助!