bat 复制文件夹,文件名递增 等操作
句尾无';'
@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 复制文件夹,文件名递增 等操作的更多相关文章
- bat复制文件夹下所有文件到另一个目录
一个需求,网上了半天都是错了,所以记一下吧,方便你我. copy是文件拷贝,文件夹拷贝需要用到xcopy @echo off::当前盘符set curPath=%cd%set digPath =&qu ...
- C# 压缩 解压 复制文件夹,文件的操作
命名空间:namespace System.IO.Compression 压缩: //目标文件夹 string fileDirPath = "/Downloads/试题" + us ...
- c# 封装的文件夹操作类之复制文件夹
c# 封装的文件夹操作类之复制文件夹 一.复制文件夹原理: 1.递归遍历文件夹 2.复制文件 二.FolderHelper.cs /// <summary> /// 文件夹操作类 /// ...
- Web 在线文件管理器学习笔记与总结(13)重命名文件夹(14)复制文件夹
(13)重命名文件夹 ① 重命名文件夹通过 rename($oldname,$newname) 实现 ② 检测文件夹名是否符合规范 ③ 检测当前目录中是否存在同名文件夹名称,如果不存在则重命名成功 i ...
- [转帖]XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件
XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件 https://www.cnblogs.com/smartsmile/p/7665979.html xcopy dirA dir ...
- JAVA实现复制文件夹
package com.filetest; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...
- linux复制文件夹、重命名文件夹、删除文件夹
linux中复制命令为cp(即copy缩写),重命名使用mv命令(即move缩写)来实现,删除命令为rm(即remove缩写). 如果操作对象是单个文件,复制和删除以及重命名很简单,如下: cp a. ...
- CMD复制文件夹
CMD复制文件夹 xcopy /E/I/Y "D:\GitHub\WIP\app" "D:\GitHub\WIP_server\html\webshell"
- java复制文件夹中的所有文件和文件夹到另一个文件夹中
1.复制文件夹 public static void copyDir(String oldPath, String newPath) throws IOException { File file = ...
随机推荐
- js外部调用layui.use中的函数的写法
layui模块化的写法固然不错,但也有让人不适应的一些地方 外部调用函数的写法就让人不太舒服 需要在函数名前面加上window这个前缀,就不太舒服 补充:window前缀,是全局变量的声明方式 如下: ...
- 解决 Redis 只读不可写的问题
本文转载:https://blog.csdn.net/han_cui/article/details/54767208?tdsourcetag=s_pcqq_aiomsg 解决 Redis 只读不可写 ...
- 进程间通讯:有名管道FIFO
接收端: #include <sys/stat.h> #include <sys/types.h> #include <stdio.h> #include < ...
- Civil 3D 二次开发 创建Civil 3D 对象—— 01 —— 创建几何空间点
这一小节,我们创建派生于CivilCreateEntityDemo的类CivilCreateCogoPoint,来创建几何空间点. 1 创建类并添加字段及方法 首先在项目资源管理器中向本项目中添加类, ...
- BZOJ4849[Neerc2016]Mole Tunnels——模拟费用流+树形DP
题目描述 鼹鼠们在底下开凿了n个洞,由n-1条隧道连接,对于任意的i>1,第i个洞都会和第i/2(取下整)个洞间有一条隧 道,第i个洞内还有ci个食物能供最多ci只鼹鼠吃.一共有m只鼹鼠,第i只 ...
- BZOJ3790神奇项链——manacher+贪心
题目描述 母亲节就要到了,小 H 准备送给她一个特殊的项链.这个项链可以看作一个用小写字 母组成的字符串,每个小写字母表示一种颜色.为了制作这个项链,小 H 购买了两个机器.第一个机器可以生成所有形式 ...
- django 报错 : django.core.exceptions.ImproperlyConfigured: The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting
错误原因有可能是在settings中静态文件目录设置的有问题 STATIC_ROOT=os.path.join(BASE_DIR,"static/")#错误 STATIC_ROOT ...
- HDOJ 5666//快速积,推公式
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5666 题意:给一条直线x+y=q,在(0,0)往x+y=q上面的整数点连线,x+y=q与x,y轴截成的三角 ...
- python学习日记(python2/3区别补充,is / id/ encode str,bytes)
python2和python3区别 print python2中,print 是语句 :用法 ---->print '***' python3中,print 是函数:用法----->pri ...
- Android 错误提示: Can't create handler inside thread that has not called Looper.prepare()
Can't create handler inside thread that has not called Looper.prepare() 将 Handler handler = new Hand ...