句尾无';'

@echo off : 回显,使命令不在dos中一行一行输出

pause : 暂停,以便看到输出结果

变量

%% 与 % % : https://zhidao.baidu.com/question/518580373.html

%xxx%

%%i  (for) 变量名:单字符 ???

/r /d : https://blog.csdn.net/ab7434588/article/details/53055890

还有其它符号

算数运算 : https://blog.csdn.net/sanqima/article/details/37902463

%1 %2 %3 ...

命令行上的参数

@echo off set a=% echo %a% pause

C:\Users\scientific\Desktop>.bat abc abc 请按任意键继续. . .

判断是否相等,存在,定义

https://zhidao.baidu.com/question/872612194823360892.html

if else

if xxx ( ) else (  ::else必须在这行 )

输出换行符

echo.

注释

https://blog.csdn.net/wh_19910525/article/details/8125762

转义字符

echo ^&

在linux下用-e 输出转义字符\t等。在windows下暂时找不到。

非常重要!

延迟变量

setlocal enabledelayedexpansion :  http://blog.sina.com.cn/s/blog_a9cdad020102wugf.html

for循环里, () 一个整体

字符串截取 长度为变量 (for循环内不行,目前尚未找到解决方法)

 @echo off
setlocal enabledelayedexpansion set str=
set /a delta1=-
set str1=!str:~,%delta1%! 外面必须是!!
echo %str1% pause

应用:

文件夹下所有文件夹重新命名为1,2,3,...

目录有‘*’,一定要加上

 @echo off
setlocal enabledelayedexpansion
set /a ind=
for /d %%i in (C:\Users\scientific\Desktop\test\*) do (
set /a ind+=
ren "%%i" "!ind!"
) pause

文件夹构:

 1 --xxx
2
3 --yyy1
4
5 --file1
6
7 --file2
8
9 ...
10
11 --yyy2
12
13 ....
14
15 --yyy3
16
17 ....
18
19 ...

文件夹下所有文件夹重新命名为xxx1,xxx2,xxx3,...

 @echo off
setlocal enabledelayedexpansion
set /a ind=
set str="code"
for /d %%i in (C:\Users\scientific\Desktop\test\*) do (
set /a ind+=
ren "%%i" "%str%!ind!"
) pause

文件夹下所有文件重新命名为xxx1,xxx2,xxx3,...

 @echo off
setlocal enabledelayedexpansion
set /a ind=
set str="z"
for %%i in (C:\Users\scientific\Desktop\test\*) do (
set /a ind+=
ren "%%i" "%str%!ind!"
) pause

文件夹下名称含有yyy的文件夹重新命名为xxx1,xxx2,xxx3,...

>nul 不输出

!errorlevel!

 @echo off
setlocal enabledelayedexpansion for /d %%i in (C:\Users\scientific\Desktop\test\*) do (
echo %%i | findstr "code" >nul
if !errorlevel! equ (
set /a ind+=
ren "%%i" "!ind!"
)
) pause

输出每个文件夹有多少文件

 @echo off
setlocal enabledelayedexpansion for /d %%i in (C:\Users\scientific\Desktop\test\*) do (
set /a g=
for %%j in (%%i\*) do (
set /a g+=
)
echo %%i !g!
) pause

复制某个文件夹多次(命名为xxx001,xxx002,xxx003,...)

/e:复制目录和子目录,包括空的

/y:不需要确认修改文件

 C:\Users\scientific\Desktop>tree code  /f
文件夹 PATH 列表
卷序列号为 EC4C-63EE
C:\USERS\SCIENTIFIC\DESKTOP\CODE
│ .txt

└─
.txt C:\Users\scientific\Desktop>tree test /f
文件夹 PATH 列表
卷序列号为 EC4C-63EE
C:\USERS\SCIENTIFIC\DESKTOP\TEST
├─code001
│ │ .txt
│ │
│ └─
│ .txt

├─code002
│ │ .txt
│ │
│ └─
│ .txt

├─code003
│ │ .txt
│ │
│ └─
│ .txt

├─code004
│ │ .txt
│ │
│ └─
│ .txt

└─code005
│ .txt

└─
.txt
 @echo off
setlocal enabledelayedexpansion set addr1="C:\Users\scientific\Desktop\code"
set addr2="C:\Users\scientific\Desktop\test" for /l %%i in (,,) do (
echo %%i
set /a ind+=
set num=%%i
set num=!num:~-!
echo d | xcopy %addr1% %addr2%\code!num! /e /y
) pause

c++项目 一个文件夹。多个题目,拷贝文件夹多份

 @echo off
setlocal enabledelayedexpansion set addr1=".\basic"
set addr2=".\" for /l %%i in (,,) do (
echo %%i
set /a ind+=
set num=%%i
set num=!num:~-!
echo d | xcopy %addr1% %addr2%\code!num! /e /y
) pause

测试命名是否正确,每个文件夹里的文件的名字是否包含文件夹的名字

 C:\Users\scientific\Desktop\test>tree /f
文件夹 PATH 列表
卷序列号为 EC4C-63EE
C:.
│ scr.txt
│ test1.bat

├─code1
│ code1_1.txt
│ code1_2.txt
│ code1_3.txt

├─code2
│ code2_1.txt
│ code2_2.txt

└─code3
.txt
code3_1.txt
 @echo off
setlocal enabledelayedexpansion set addr=C:\Users\scientific\Desktop\test
for /f "delims=" %%i in ('dir %addr% /b') do (
for /f "delims=" %%j in ('dir %addr%\%%i /b') do (
echo %%j | findstr %%i >nul
if !errorlevel! equ (
echo %addr%\%%i\%%j
)
)
)
) pause

at last  from http://tieba.baidu.com/p/2683225056

bat优点:简单易懂 缺点:运行效率慢(解释性语言)
c优点:功能强大、运行效率高 缺点:命令过于复杂(某些)

bat 复制文件夹,文件名递增 等操作的更多相关文章

  1. bat复制文件夹下所有文件到另一个目录

    一个需求,网上了半天都是错了,所以记一下吧,方便你我. copy是文件拷贝,文件夹拷贝需要用到xcopy @echo off::当前盘符set curPath=%cd%set digPath =&qu ...

  2. C# 压缩 解压 复制文件夹,文件的操作

    命名空间:namespace System.IO.Compression 压缩: //目标文件夹 string fileDirPath = "/Downloads/试题" + us ...

  3. c# 封装的文件夹操作类之复制文件夹

    c#  封装的文件夹操作类之复制文件夹 一.复制文件夹原理: 1.递归遍历文件夹 2.复制文件 二.FolderHelper.cs /// <summary> /// 文件夹操作类 /// ...

  4. Web 在线文件管理器学习笔记与总结(13)重命名文件夹(14)复制文件夹

    (13)重命名文件夹 ① 重命名文件夹通过 rename($oldname,$newname) 实现 ② 检测文件夹名是否符合规范 ③ 检测当前目录中是否存在同名文件夹名称,如果不存在则重命名成功 i ...

  5. [转帖]XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件

    XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件 https://www.cnblogs.com/smartsmile/p/7665979.html xcopy dirA dir ...

  6. JAVA实现复制文件夹

    package com.filetest; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...

  7. linux复制文件夹、重命名文件夹、删除文件夹

    linux中复制命令为cp(即copy缩写),重命名使用mv命令(即move缩写)来实现,删除命令为rm(即remove缩写). 如果操作对象是单个文件,复制和删除以及重命名很简单,如下: cp a. ...

  8. CMD复制文件夹

    CMD复制文件夹 xcopy /E/I/Y "D:\GitHub\WIP\app" "D:\GitHub\WIP_server\html\webshell"

  9. java复制文件夹中的所有文件和文件夹到另一个文件夹中

    1.复制文件夹 public static void copyDir(String oldPath, String newPath) throws IOException { File file = ...

随机推荐

  1. HashMap、HashTable、ConcurrentHashMap、HashSet区别 线程安全类

    HashMap专题:HashMap的实现原理--链表散列 HashTable专题:Hashtable数据存储结构-遍历规则,Hash类型的复杂度为啥都是O(1)-源码分析 Hash,Tree数据结构时 ...

  2. tomcat 与 nginx,apache的区别

    tomcat 与 nginx,apache的有什么区别 回答一: 题主说的Apache,指的应该是Apache软件基金会下的一个项目——Apache HTTP Server Project:Nginx ...

  3. 一、MyCat的搭建

    一.什么是mycat 简单直接点就是,MyCat其实就是一个数据库的中间件!一般我们都是app直接到数据库!有了MyCat以后,就是app到MyCat然后再访问数据库. mycat是个中间件,它负责连 ...

  4. Clover file list

    /Volumes/EFI//EFI: total 4 drwxrwxrwx 1 jianweiliu staff 512 Apr 20 12:17 APPLE drwxrwxrwx@ 1 jianwe ...

  5. AMS工作原理—— App启动概要

    说明: 1. 通过Launcher或者startActivity启动最终的流程都是和上面的一致的. 2. AMP是AMS在App端(client端)的代理, ATP是ApplicationThread ...

  6. M3U8文件

    M3U本质上说不是音频文件,它是音频文件的列表文件,是纯文本文件.你下载下来打开它,播放软件并不是播放它,而是根据它的记录找到网络地址进行在线播放. M3U文件的大小很小,也就是因为它里面没有任何音频 ...

  7. ubuntu 14.04zabbix的安装

    开始安装 64位  Ubuntu 14.04.5 LTS \n \l 安装zabbix的源,以下操作在root下进行 # wget http://repo.zabbix.com/zabbix/3.0/ ...

  8. Android学习第7天

    这次大都是广播案例,在笔记中不予展示注: a.做开机启动时,在广播类中用到Intent需要这三行代码 Intent intent1 = new Intent(context, MainActivity ...

  9. win10系统同时安装python2.7和python3.6

    我是先在本机上安装的python3.6.5,因为要学习一个框架,但是这个框架只支持python2,所以我又安装了python2.7.15,并且配置到系统环境变量 环境变量配置了python3.6.5的 ...

  10. SCOI2016幸运数字(树剖/倍增/点分治+线性基)

    题目链接 loj luogu 题意 求树上路径最大点权异或和 自然想到(维护树上路径)+ (维护最大异或和) 那么有三种方法可以选择 1.树剖+线性基 2.倍增+线性基 3.点分治+线性基 至于线性基 ...