前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows 文件管理 | 利用批处理实现一键将同名文件移动到对应文件夹

Windows 文件管理 | 利用批处理实现一键将同名文件移动到对应文件夹

作者头像
怪兽
发布2022-10-04 15:33:29
1.1K0
发布2022-10-04 15:33:29
举报
文章被收录于专栏:怪兽怪秀

目的

快速便捷的将同名不同格式的文件移动到同名文件夹中。

方案

利用 for 语句提取文件名, 并利用 md 命令新建同名文件夹, 利用 move 命令将同名不同格式移动到同名文件夹中

步骤

1. 新建批处理文件

复制以下代码到记事本, 保存为 bat 格式。

代码语言:javascript
复制
@echo off
setlocal enabledelayedexpansion
for %%a in (*.png) do (
    set "file=%%~na"
    md "!file!"
    move "!file:~,8!*" "!file!\"
)
pause

说明

  • 第三行代码中的「.png」需根据实际情况调整。(png 改为现有的任一文件格式, 如「.txt」、「*.mp4」)
  • 上诉代码大意为 : 提取 png 格式文件名并新建同名文件夹, 将同名(前八位字符)不同格式的文件移动到对应的同名文件夹中。 2. 使用批处理文件 将批处理文件复制到目标文件夹下, 双击使用。 批处理参数(%n)的替代 选项语法:
代码语言:javascript
复制
~0         - 删除任何引号("),扩充 %0
    %~f0        - 将 %0 扩充到一个完全合格的路径名(“f”是file,即文件)
    %~d0        - 仅将 %0 扩充到一个驱动器号
    %~p0        - 仅将 %0 扩充到一个路径
    %~n0        - 仅将 %0 扩充到一个文件名(“n”是name 文件名)
    %~x0        - 仅将 %0 扩充到一个文件扩展名
    %~s0        - 扩充的路径只含有短名(“s”为Short,短的)
    %~a0        - 将 %0 扩充到文件的文件属性(“a”为attribute,即属性)
    %~t0        - 将 %0 扩充到文件的日期/时间(“t”time)
    %~z0        - 将 %0 扩充到文件的大小(Size 大小)
    %~$PATH:0   - 查找列在路径环境变量的目录,并将 %0 扩充
                  到找到的第一个完全合格的名称。如果环境变量名
                  未被定义,或者没有找到文件,此组合键会扩充到
                  空字符串

可以组合修定符来取得多重结果:

代码语言:javascript
复制
%~dp1       - 只将 %1 扩展到驱动器号和路径
    %~nx1       - 只将 %1 扩展到文件名和扩展名
    %~dp$PATH:1 - 在列在 PATH 环境变量中的目录里查找 %1,
                   并扩展到找到的第一个文件的驱动器号和路径。
    %~ftza1     - 将 %1 扩展到类似 DIR 的输出行。

使用示例:

创建一个bat文件(expand_path.bat),内容:

代码语言:javascript
复制
@echo "%~1"
@echo "%~f1"
@echo "%~d1"
@echo "%~p1"
@echo "%~n1"
@echo "%~x1"
@echo "%~s1"
@echo "%~a1"
@echo "%~dps1%~nx1"
pause

然后使用命令

代码语言:javascript
复制
expand_path  "C:/Program Files/Internet Explorer/Iexporter.exe"

得出:

"C:/Program Files/Internet Explorer/Iexporter.exe"

"C:/Program Files/Internet Explorer/Iexporter.exe"

"C:"

"/Program Files/Internet Explorer/"

"Iexporter"

".exe"

"C:/PROGRA1/INTERN1/Iexporter.exe"

""

"C:/PROGRA1/INTERN1/Iexporter.exe"

可以简单地使用这些组合来批出自己想要的一些路径。

另外一个例子:

代码语言:javascript
复制
----------------DoBind.bat------------------------------

:将当前文件夹下的所有xsd文件转换为C++代码文件
@for /r "%cd%" %%i in (*.xsd) do @echo "%%i" && @xmlbind "%%i" "%cd%"

 

-------------- Bindxml.bat------------------

::将参数1指定的xsd文件转换为C++代码文件

:进入参数文件所在的路径
cd "%~dps1"
%~d1

:"%~dps1%~nx1"  --output-dir "%~dps1"  %temp%/

:拷贝到temp后进行处理,原因是xsd不支持中文路径
copy "%1" "%temp%"

:取参数文件名的文件名,调用xsd来转换
xsd cxx-tree --generate-serialization --hxx-suffix .h --ixx-suffix .inl --cxx-suffix .cpp --generate-ostream --

generate-doxygen --generate-comparison  --generate-default-ctor "%temp/%~nx1"

:copy "%temp%%~n1.h" %cd%
:copy "%temp%%~n1.cpp" %cd%
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目的
  • 方案
  • 步骤
    • 1. 新建批处理文件
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档