批处理参数(%n)的替代

选项语法:

    ~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 扩充
                  到找到的第一个完全合格的名称。如果环境变量名
                  未被定义,或者没有找到文件,此组合键会扩充到
                  空字符串

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

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

 使用示例:

 创建一个bat文件(expand_path.bat),内容:
@echo "%~1"
@echo "%~f1"
@echo "%~d1"
@echo "%~p1"
@echo "%~n1"
@echo "%~x1"
@echo "%~s1"
@echo "%~a1"
@echo "%~dps1%~nx1"
pause

然后使用命令
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:/PROGRA~1/INTERN~1/Iexporter.exe"
""
"C:/PROGRA~1/INTERN~1/Iexporter.exe"

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

 

另外一个例子:

----------------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%

原文链接: https://www.cnblogs.com/k1988/archive/2010/05/05/2165662.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    批处理参数(%n)的替代

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/10604

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 上午12:01
下一篇 2023年2月7日 上午12:01

相关推荐