[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
25# batman
/q 参数是画蛇添足,没/s ,/q压根就没有存在的意义。

TOP

来一种另类的:
  1. xcopy /s 源文件夹 \临时\
  2. rd /s /q 源文件夹
  3. xcopy /s \临时 源文件夹\
复制代码
适合文件少而体积小,并且空文件夹多的情况

TOP

来一种另类的:xcopy /s 源文件夹 \临时\
rd /s /q 源文件夹
xcopy /s \临时 源文件夹\适合文件少而体积小,并且空文件夹多的情况
zm900612 发表于 2011-6-9 18:16


没看懂你的意图,先复制到临时,删除源文件夹,又复制临时到源文件夹——这不是什么都没做吗?

TOP

33# Hello123World


/s开关的特性是不复制空文件夹...

TOP

32# zm900612
for %%d in (源文件夹) do (
    xcopy /s %%d %%~sdpd\$temp\
    rd /s /q %%d
    ren %%~sdpd\$temp "%%~nxd"
)
1

评分人数

    • zm900612: 绝妙!但是请把代码用code框起来...PB -4 技术 + 2
天的白色影子

TOP

ding.......

TOP

32# zm900612
for %%d in (源文件夹) do (
    xcopy /s %%d %%~sdpd\$temp\
    rd /s /q %%d
    ren %%~sdpd\$temp "%%~nxd"
)
qzwqzw 发表于 2011-6-9 23:09



真是太妙了,为什么我就没想到,差距啊...

TOP

回复 37# CrLf


    请问一下,%%~sdpd这个变量是什么意思?

TOP

回复 38# wrjx


    表示该文件目录的短路径,详见 for /?:
另外,FOR 变量参照的替换已被增强。您现在可以使用下列
选项语法:

     %~I          - 删除任何引号("),扩展 %I
     %~fI        - 将 %I 扩展到一个完全合格的路径名
     %~dI        - 仅将 %I 扩展到一个驱动器号
     %~pI        - 仅将 %I 扩展到一个路径
     %~nI        - 仅将 %I 扩展到一个文件名
     %~xI        - 仅将 %I 扩展到一个文件扩展名
     %~sI        - 扩展的路径只含有短名
     %~aI        - 将 %I 扩展到文件的文件属性
     %~tI        - 将 %I 扩展到文件的日期/时间
     %~zI        - 将 %I 扩展到文件的大小
     %~$PATH:I   - 查找列在路径环境变量的目录,并将 %I 扩展
                   到找到的第一个完全合格的名称。如果环境变量
                   未被定义,或者没有找到文件,此组合键会扩展
                   空字符串

可以组合修饰符来得到多重结果:

     %~dpI       - 仅将 %I 扩展到一个驱动器号和路径
     %~nxI       - 仅将 %I 扩展到一个文件名和扩展名
     %~fsI       - 仅将 %I 扩展到一个带有短名的完整路径名
     %~dp$PATH:I - 搜索列在路径环境变量的目录,并将 %I 扩展
                   到找到的第一个驱动器号和路径。
     %~ftzaI     - 将 %I 扩展到类似输出线路的 DIR

在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法
用一个有效的 FOR 变量名终止。选取类似 %I 的大写变量名
比较易读,而且避免与不分大小写的组合键混淆。

TOP

返回列表