windows 有没有这种自动移动文件的工具?

2021-05-11 12:44:56 +08:00
 imn1
需求:
0. 移动,不是复制,也就是不是同步的需求
1. 监视指定文件夹(及子文件夹)的特定类型,就是扩展名,然后自动移动到目标文件夹
2. [重点] 移动后保持子文件夹的路径一致

例如:
监视 c:\abc,扩展名*.zip ,目标文件夹 d:\a
c:\abc\0.zip ---> d:\a\0.zip
c:\abc\sub\1.zip ---> d:\a\sub\1.zip
c:\abc\sub\2.zip.part 不移动
c:\abc\sub\3.rar 不移动
3431 次点击
所在节点    Windows
21 条回复
hello2060
2021-05-11 12:48:06 +08:00
syncthing 可以吗
xinge666
2021-05-11 12:50:11 +08:00
Python 写个脚本不就行了 用 watchdog 库
ipwx
2021-05-11 12:52:32 +08:00
伪代码:

while true: {
mkdir -p D:\a\
mv C:\abc\*.zip D:\a\
sleep 10
}
also24
2021-05-11 12:52:36 +08:00
goodsync 应该可以配置出相似功能
ipwx
2021-05-11 12:52:54 +08:00
奥错了还有子目录。那就用 python glob 吧
venster
2021-05-11 12:54:09 +08:00
robocooy 的 mon 模式
vlitter
2021-05-11 12:57:39 +08:00
freefilesync.org ,开源软件,挺好用的
vlitter
2021-05-11 12:58:10 +08:00
@vlitter 哦这个好像没有监视的功能。。。。忽略我爸
Pagliacii
2021-05-11 12:58:26 +08:00
Tumblr
2021-05-11 13:00:08 +08:00
如果对实时性要求不高: 计划任务 + robocopy
如果对实时性要求较高: 脚本调用 robocopy
imn1
2021-05-11 14:05:49 +08:00
@Pagliacii #9
dropit 用过,但我没找到连同子路径一起复制的规则
Pagliacii
2021-05-11 14:19:41 +08:00
konchu
2021-05-11 15:42:39 +08:00
@vlitter FreeFileSync 有个 Real time sync 监视器,可以设定以秒为单位的监视频率,文件有任何变化即执行命令,可以配合 FreeFileSync 的 Batch file 做到任何事情。
crab
2021-05-11 16:47:13 +08:00
ReadDirectoryChangesW
Saurichthys
2021-05-11 17:38:14 +08:00
ftpcopy
vlitter
2021-05-11 18:42:26 +08:00
@konchu 学到了学到了,谢谢!
g00001
2021-05-11 23:32:56 +08:00
可以自己写一个,下面是我用 aardio 写的:

import fsys;
import fsys.dirWatcher;
import win.ui;
/*DSG{{*/
var winform = win.form(text="临视指定文件并移动目录")
winform.add(
editChange={cls="edit";left=15;top=17;right=740;bottom=449;db=1;dl=1;dr=1;dt=1;edge=1;hscroll=1;multiline=1;vscroll=1;z=1}
)
/*}}*/

var targetDir = "d:\dst" //目标目录
var watchDir = "d:\src" //监视的目录
var watchRule = ".+\.zip" //监视规则

var watcher = fsys.dirWatcher.thread(
function(filePath,action,actionText){
if(action==1/*_FILE_ACTION_ADDED*/
|| action = 5/*_FILE_ACTION_RENAMED_NEW_NAME*/){
var fileName = io.splitpath(filePath).file
if(fileName ? string.match(fileName,watchRule)){
var path = io.joinpath(watchDir,filePath);
fsys.move(path,io.joinpath(targetDir,filePath));
winform.editChange.print("已移动",filePath);
}
}
}, watchDir);


//退出停止监视文件
winform.onDestroy = function(){
if(watcher) watcher.close();
}

winform.show()
win.loopMessage();
g00001
2021-05-11 23:35:15 +08:00
kylejustknows
2021-05-12 02:16:46 +08:00
都不用第三方工具
xcopy ....folder\*.zip ..to_folder\ /S /Y
S 开关是子文件夹和复制时保持目录结构

如果你想删除原文件,DEL /Q /F /S .....\*.zip 呗, 然后加一个延时和 goto 永久循环
0747916
2021-05-12 08:39:38 +08:00
@vlitter #7 一直用这个

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/776211

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX