judgecx 发表于 2022-5-11 18:16

修改bat并遍历所有磁盘并复制

@echo off
setlocal enabledelayedexpansion
set dst=C:\
set src=C:\test\1.txt
for /f "delims=" %%i in ('dir /s /b /ad "!dst!" "!dst1!"')do copy "!src!" "%%i"

现在只是复制到c盘的 能不能遍历所有磁盘然后复制 我按照上面的改好像不行 大佬指点指点

unmask 发表于 2022-5-11 18:16

c盘所有子文件夹应该成千上万,你这个bat不知道要干啥?
最后没有copy,只是echo出命令行

@echo off
setlocal enabledelayedexpansion

set src=C:\test\1.txt
for %%c in (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (
    if exist %%c: (
      set dst=%%c:
      for /f "usebackq delims=" %%i in (`dir /s /b /ad "!dst!"`)do echo copy "!src!" "%%i"
    )
)

ryosga 发表于 2022-5-11 19:30

用的代码在A到Z盘之间遍历一遍不就可以了

judgecx 发表于 2022-5-11 20:40

unmask 发表于 2022-5-11 19:32
c盘所有子文件夹应该成千上万,你这个bat不知道要干啥?
最后没有copy,只是echo出命令行



老哥你这个不行 我刚刚测试了一遍 原脚本能复制进去 你这个不得行 我把echo去掉了

cn2jp 发表于 2022-5-11 22:03

有点记不清了,好像win98-xp那个年代的高手特别多,现在用批处理的不多了吧?

tl;dr 发表于 2022-5-12 06:05

Natu 发表于 2022-5-12 10:19

本帖最后由 Natu 于 2022-5-12 10:21 编辑

@echo off
setlocal enabledelayedexpansion
set dst=C:\
set src=C:\test\1.txt
for /f "delims=" %%i in ('dir /s /b /ad %dst%')do copy "!src!" "%%i"
显示 网址 关闭

Natu 发表于 2022-5-12 10:22

本帖最后由 Natu 于 2022-5-12 10:23 编辑

重复发帖了,不会删除,请版主帮忙删贴!

显示 网址 关闭

Natu 发表于 2022-5-12 10:37

unmask 发表于 2022-5-11 19:32
c盘所有子文件夹应该成千上万,你这个bat不知道要干啥?
最后没有copy,只是echo出命令行



这个批处理应该没问题,不清楚楼主是想学习批处理的递归调用,还是别的什么,这样大规模的copy操作请慎用!

judgecx 发表于 2022-5-12 12:52

Natu 发表于 2022-5-12 10:19
@echo off
setlocal enabledelayedexpansion
set dst=C:\


额我的脚本 我知道可以用 但是我是想遍历所有并复制 你这是我的原生脚本
页: [1] 2
查看完整版本: 修改bat并遍历所有磁盘并复制