Board logo

标题: [文件操作] 如何获取d盘根目录下的文件夹和文件路径,并循环赋值给同一个变量? [打印本页]

作者: ygqiang    时间: 2016-3-12 19:44     标题: 如何获取d盘根目录下的文件夹和文件路径,并循环赋值给同一个变量?

本帖最后由 pcl_test 于 2016-3-12 21:40 编辑

如何顺序获取d盘根目录下一级目录和文件路径,并循环赋值给同一个变量xxyy?
需要排除掉:系统目录或者隐藏目录、其他满足条件的目录。
比如$RECYCLE.BIN(系统)、System Volume Information(系统)、XMusicServerStorage(隐藏)、迅雷下载(个人需求)

然后执行:
copyw.exe “%xxyy%" g:\备份


copyw来自该帖
http://www.bathome.net/thread-38339-1-2.html
作者: codegay    时间: 2016-3-14 11:25

56年还需要问这种问题。
作者: sishentibu    时间: 2016-3-14 18:43

copyw.exe不会,我是用xcopy写的。你可以参考着改一下
  1. @echo off
  2. set source="D:\"
  3. set tagart="g:\备份"
  4. for /f %%i in ('dir %source% /ad-h-s /b') do (
  5. if "%%i" neq "迅雷下载" (xcopy %source%\%%i %tagart%\%%i\))
  6. for /f %%i in ('dir %source% /a-d-h-s /b') do (
  7. xcopy %source%\%%i %tagart%)
  8. pause
复制代码

作者: ygqiang    时间: 2016-3-14 19:10

回复 3# sishentibu


    多谢。有没有单向/同步的批处理命令?

比如
1、如果目标文件夹下,有多余的文件/文件夹。
就直接删除掉。
2、如果源文件夹和目标文件夹下,有完全一样的同体积/同名字文件。
就直接忽略掉,不复制。
3、如果源文件夹,对比目标文件夹下,同体积/同名字的文件,修改或者删除了。
就删除目标文件,源文件单向同步/复制到目标文件夹下。
作者: sishentibu    时间: 2016-3-14 19:42

本帖最后由 sishentibu 于 2016-3-14 19:43 编辑

回复 4# ygqiang


    第一点,如果东西不多,就直接简单粗暴的先删除,然后再复制吧。
东西多的话,可以用if not exsit 配合dir命令判断,再删除

二三点,只要判断文件的修改时间就可以了。而且,应该d盘下的东西都会比较新吧?所以只要判断修改时间不一样,就可以强制覆盖复制了。这个用dir命令应该可以。
但字符的截取我试了下不对,所以我还要试试。但思路应该是可行的。
作者: CrLf    时间: 2016-3-15 03:21

本帖最后由 CrLf 于 2016-3-15 03:22 编辑
  1. hash /s:1~1 \*/迅雷下载/:! /do:"copyx ""%%s"" g:\\备份\\"
复制代码

作者: codegay    时间: 2016-3-15 18:46

  1. #=julia排除目录调用命令备份文件.jl
  2. 2016年3月15日 16:54:34 codegay
  3. julia是一门很年轻的科学计算语言,
  4. 综合很了很多语言的特性,号称有很好的性能。
  5. 灵活,上手快,这门语言将来应用范围可能比较广。
  6. =#
  7. d=readdir("d:/")
  8. f=["快盘","AV","\$RECYCLE.BIN","temp","System Volume Information"]
  9. #$是特殊字符,需要加|转义
  10. #使用filter过滤
  11. for r in f
  12.   d=filter(x -> x!=r,d)
  13. end
  14. #使用run()执行命令
  15. [run(`cmd /c copyw.exe "$r" g:/备份`) for r in d]
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2