[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理怎样新建文件夹并把当前盘其余文件剪切进该文件夹?

做一个批处理文件,功能:
运行该批处理文件,能自动在批处理文件所在的盘符下新建一个新的文件夹(名叫1),把该盘符 除 刚新建的文件夹(1) 以外其他所有的文件以及文件夹剪切进刚建的新文件夹(1)中。

很急,由于要做一个小软件,要用到这个功能,请各位帮帮忙。
万分感谢!!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

@echo off
if not exist "%cd%\1" md "%cd%\1"
FOR /F "tokens=1 delims=:" %%%i in ('echo %cd%') do XCOPY /S /Y %%i:\ "%cd%\1"
pause

我在U盘运行这个代码,结果只在U盘创建了一个文件名为1的文件夹而已
能告诉我应该怎么修改才能达到以上的功能吗?
谢谢了哈

TOP

数据无价,楼主小心行事。
保存为bat文件,放磁盘根目录运行。
  1. @echo on&pushd "%~d0\"
  2. md "1" 2>nul
  3. for /f "delims=" %%a in ('dir /a-d /b *.*^|findstr /vbe "%~nx0"') do (
  4.   move /y "%%a" "1\"
  5. )
  6. for /f "delims=" %%a in ('dir /ad /b *.*^|findstr /vbe "1"') do (
  7.   xcopy "%%a\*.*" "1\%%a\" /s /y
  8.   rd /s /q "%%a\"
  9. )
  10. pause
复制代码

TOP

回复 3# apang


    首先谢谢你了,我刚试了一下,好像你这个代码的原理是先复制文件,再删除原来的文件,从而达到“剪切”的目的。
    但是在同一个盘里面复制新的文件需要等待时间,文件越多越大,需要的时间就越长。但是如果是直接采用真正的 剪切 的话,在同一个盘移动文件是不需要时间的。我想要的就是使用真正的 剪切 ,这样的话几乎运行这个代码可以不用花时间。所以您可以改下吗?万分感谢了!

TOP

回复 5# apang


    那请问有没有什么办法,能让代码运行起来就像用鼠标点“剪切、粘贴”一样呢?
    如果实在没有,能不能麻烦你把用枚举的方法也做出来参考一下呢?
谢谢了!这一步真的很重要。如果不能尽可能的减少时间,我的软件实用性就不大了。
真的,再次谢谢了!

TOP

回复 5# qq36762686

试试看是否快些
  1. @echo off&pushd "%~d0\"
  2. md "1" 2>nul
  3. for /f "delims=" %%a in ('dir /b *.*^|findstr /vbe "%~nx0 1"') do (
  4.   move /y "%%a" "1\%%a"
  5. )
  6. pause
复制代码
1

评分人数

    • qq36762686: 这个代码使用时间很短,谢谢!技术 + 1

TOP

回复 6# apang


    万分感谢!我现在就去试下。

TOP

回复 6# apang


    万分感谢,代码质量超级好。万分感谢!!

TOP

返回列表