如何更改bat文件中的输出文件名?
How to change the output file name in a bat file?
我正在尝试更改 bat 文件中的输出文件名 fOut,但到目前为止还没有成功。
我正在 Windows 7 上开发并将代码部署到 Windows 2003 服务器。
代码如下所示:
set fName=%1
set fExt=%fName:~-5,-1%
set fOut=%fName:~0,-5%_PAD%fName:~-5%
fOut 示例:
abcdc2evv_PAD.dat
abcdefgh33ij_3737_PAD.dat
如何更改 fOut 以获得以下文件名?
一个。在文件名开头添加FMT_:
FMT_abcdc2evv_PAD.dat
FMT_abcdefgh33ij_3737_PAD.dat
乙。在文件名开头添加FMT_,去掉.dat前的_PAD:
FMT_abcdc2evv.dat
FMT_abcdefgh33ij_3737.dat
附录:
只向 bat 文件传递一个参数:路径 + 文件名。
x.bat "C\test\xxx.dat"
bat文件中:
@echo ^-input file name = ^%1
set fName=%1
set fExt=%fName:~-5,-1%
set fOut==%fName:~0,-5%_PAD%fName:~-5%
如果你想删除 pad 只需将它从你的赋值语句中删除
你有:
set fOut=%fName:~0,-5%_PAD%fName:~-5%
你想要:
set fOut=%fName:~0,-5%fName:~-5%
要添加FMT_只需在文件名开头添加即可:
set fOut=%FMT_%fName:~0,-5%_PAD%fName:~-5%
我不知道我是否遗漏了一些明显的东西——不清楚这个脚本的输入是什么。
但是之前添加FMT_应该只是改变的情况:
set fOut=%fName:~0,-5%_PAD%fName:~-5%
至:
set fOut=FMT_%fName:~0,-5%_PAD%fName:~-5%
或者如果您想将 FMT_ 版本放入另一个变量,则:
set bob=FMT_%fOut%
至于删除_PAD,你能不能只重复SET fOut
行而不是_PAD
?这似乎是最简单的方法。事实上,删除 _PAD
并添加前缀 FMT_
似乎只是这样:
set bob=FMT_%1
如果你想把文件名和扩展名分开,不要乱计算字符;有一个内置方法(在 for /?
中描述):
echo Filename=%~n1
echo Extension=%~x1
echo resulting file="FMT_%~1"
REM without _PAD, following with _PAD
set filename="FMT_%~n1_PAD%~x1"
如果确实需要删除 _PAD
(正如 Chris 已经指出的,您在代码中明确添加了它),只需将 _PAD.
替换为 .
:
set filename=%filename:_PAD.=.%
我正在尝试更改 bat 文件中的输出文件名 fOut,但到目前为止还没有成功。
我正在 Windows 7 上开发并将代码部署到 Windows 2003 服务器。
代码如下所示:
set fName=%1
set fExt=%fName:~-5,-1%
set fOut=%fName:~0,-5%_PAD%fName:~-5%
fOut 示例:
abcdc2evv_PAD.dat
abcdefgh33ij_3737_PAD.dat
如何更改 fOut 以获得以下文件名?
一个。在文件名开头添加FMT_:
FMT_abcdc2evv_PAD.dat
FMT_abcdefgh33ij_3737_PAD.dat
乙。在文件名开头添加FMT_,去掉.dat前的_PAD:
FMT_abcdc2evv.dat
FMT_abcdefgh33ij_3737.dat
附录: 只向 bat 文件传递一个参数:路径 + 文件名。
x.bat "C\test\xxx.dat"
bat文件中:
@echo ^-input file name = ^%1
set fName=%1
set fExt=%fName:~-5,-1%
set fOut==%fName:~0,-5%_PAD%fName:~-5%
如果你想删除 pad 只需将它从你的赋值语句中删除 你有:
set fOut=%fName:~0,-5%_PAD%fName:~-5%
你想要:
set fOut=%fName:~0,-5%fName:~-5%
要添加FMT_只需在文件名开头添加即可:
set fOut=%FMT_%fName:~0,-5%_PAD%fName:~-5%
我不知道我是否遗漏了一些明显的东西——不清楚这个脚本的输入是什么。
但是之前添加FMT_应该只是改变的情况:
set fOut=%fName:~0,-5%_PAD%fName:~-5%
至:
set fOut=FMT_%fName:~0,-5%_PAD%fName:~-5%
或者如果您想将 FMT_ 版本放入另一个变量,则:
set bob=FMT_%fOut%
至于删除_PAD,你能不能只重复SET fOut
行而不是_PAD
?这似乎是最简单的方法。事实上,删除 _PAD
并添加前缀 FMT_
似乎只是这样:
set bob=FMT_%1
如果你想把文件名和扩展名分开,不要乱计算字符;有一个内置方法(在 for /?
中描述):
echo Filename=%~n1
echo Extension=%~x1
echo resulting file="FMT_%~1"
REM without _PAD, following with _PAD
set filename="FMT_%~n1_PAD%~x1"
如果确实需要删除 _PAD
(正如 Chris 已经指出的,您在代码中明确添加了它),只需将 _PAD.
替换为 .
:
set filename=%filename:_PAD.=.%