Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 昨天搬家的问题';将文件从文件夹移动到另一个位置_Windows_Batch File_Vbscript_Cmd_Robocopy - Fatal编程技术网

Windows 昨天搬家的问题';将文件从文件夹移动到另一个位置

Windows 昨天搬家的问题';将文件从文件夹移动到另一个位置,windows,batch-file,vbscript,cmd,robocopy,Windows,Batch File,Vbscript,Cmd,Robocopy,我使用下面的批处理脚本将昨天的文件从源文件夹中隔离出来 该脚本一直工作到将昨天和今天的文件移动到较新文件夹的部分 我不明白为什么我不能将昨天的文件从curr文件夹中分离出来,并将它们移动到curr文件夹 如果有人能告诉我这个脚本有什么问题,我将不胜感激 提前谢谢 REM昨天日期 @回音 设置日期=-1 echo>%temp%\%~n0.vbs“s=DateAdd(“d”,%day%,now):d=weekday(s) echo>>%temp%\%~n0.vbs“WScript.echo年^对(1

我使用下面的批处理脚本将昨天的文件从源文件夹中隔离出来

该脚本一直工作到将昨天和今天的文件移动到较新文件夹的部分

我不明白为什么我不能将昨天的文件从curr文件夹中分离出来,并将它们移动到curr文件夹

如果有人能告诉我这个脚本有什么问题,我将不胜感激

提前谢谢

REM昨天日期
@回音
设置日期=-1
echo>%temp%\%~n0.vbs“s=DateAdd(“d”,%day%,now):d=weekday(s)
echo>>%temp%\%~n0.vbs“WScript.echo年^对(100多个月,2)^对(100多天,2)
对于('cscript/nologo”%temp%\%~n0.vbs“')中的/f%%a,请设置“结果=%%a”
删除“%temp%\%~n0.vbs”
设置“YYYY=%result:~0,4%
设置“MM=%result:~4,2%
设置“DD=%result:~6,2%
设置“昨天=%yyyy%%mm%%dd%”
mkdir C:\Users\ajay.shaan.shanmugam\Documents\current
机器人复制C:\Users\ajay.shaan.shanmugam\Documents\Source\C:\Users\ajay.shaan.shanmugam\Documents\currnewer\/move/maxage:%forday%
mkdir C:\Users\ajay.shaan.shanmugam\Documents\curr
机器人复制C:\Users\ajay.shaan.shanmugam\Documents\current\C:\Users\ajay.shaan.shanmugam\Documents\curr\/move/minage:%forday%
机器人复制C:\Users\ajay.shaan.shanmugam\Documents\curr\C:\Users\ajay.shaan.shanmugam\Documents\Source\/move
rmdir/S/Q C:\Users\ajay.shaan.shanmugam\Documents\current

用户从您想要的日期开始使用文件而不是vbscript,并将其与robocopy结合使用

forfiles /p "C:\Users\ajay.shaan.shanmugam\Documents\Source" /D -1 /C "cmd /c  robocopy @path C:\Users\ajay.shaan.shanmugam\Documents\currnewer\ /move"

您可以指定是否希望forfiles使用/s查看子目录,还可以使用/m指定筛选器

根据您的问题和给出的示例,优化后的脚本应如下所示:

@echo关闭
设置“昨天=1”
设置“Documents=%USERPROFILE%\Documents”
REM创建目录curr和curr
mkdir“%Documents%\curr更新的”“%Documents%\curr”
REM将震源移动到(A到B)
机器人副本“%Documents%\Source\”^
%Documents%\currenewer\“/move/maxage:%forday%/L
REM移动到当前(B到C)
机器人副本“%Documents%\curr\n”^
“%Documents%\curr\”/move/minage:%forday%/L
REM移动到震源(B到A)
机器人副本“%Documents%\curr\n”^
“%Documents%\Source\”/move/L
REM删除文件夹(B)
rmdir/S/Q“%Documents%\curr更新”
退出/b0

注意:我将
/L
添加到
robocopy
中,仅列出(模拟)

如果执行标准操作查看实际发生的情况以及变量是否正确,会发生什么:删除/注释
@echo off
,在最后添加
pause
,并在命令提示符控制台中运行批处理文件?重定向语法
echo>文件文本
对我来说很奇怪,我想你不会得到你想要的
*.vbs
文件;你检查过它的内容吗?是的,
echo
肯定需要在
n0的另一边。vbs
robocy Source\curr\/move/maxage:2/minage:1
应该直接移动昨天的文件…@aschipfl
echo>文件文本
可以工作(尽管有一个前导空格:
echo>文件文本
会忽略它)。但是,OP应该检查
.vbs
的内容,看看它是否符合预期。