批处理文件脚本连接字符串

时间:2017-09-01 11:40:58

标签: batch-file concatenation

我想在批处理文件中连接字符串,因为我需要在批处理文件(.bat)中进行参数化以频繁使用路径。所以不要写:

ren "C:\Folder\Sub Folder\filename.ext.tmp" "C:\Folder\Sub Folder\filename.ext"
del "C:\Folder\Sub Folder\filename.ext.tmp"

我想写点像

set pathString="C:\Folder\Sub Folder\"
ren pathString+"filename.ext.tmp" pathString+"filename.ext"
del pathString+"filename.ext.tmp"

这有点可行吗?如果是这样的话?谢谢!

2 个答案:

答案 0 :(得分:0)

这是非常基本的批量变量用法,只需记住正确使用引号:

set pathString=C:\Folder\Sub Folder
ren "%pathString%\filename.ext.tmp" "%pathString%\filename.ext"
del "%pathString%\filename.ext.tmp"

话虽如此,你的示例代码没有多大意义,因为

  • 您是否正在尝试删除一个不存在的文件,因为您将其重命名为其他文件?

  • 您认为在删除文件之前需要重命名该文件吗?

如果您尝试删除锁定的文件并且删除失败是可接受的,则删除前重命名才有意义。这样做会是这样的:

@echo off

REM Set up some things for this example:
md "%temp%\batchtest"
echo.blah blah > "%temp%\batchtest\filename.ext"

REM Actual code:

set pathString=%temp%\batchtest
ren "%pathString%\filename.ext" "filename.ext.del"
del "%pathString%\filename.ext.del"

答案 1 :(得分:0)

您的示例命令应为:

X   Y
-----
1   1
1   3
3   1
3   3

重命名目的地没有路径,因为它没有改变,(因此无需在Set "pathString=C:\Folder\Sub Folder" Ren "%pathString%\filename.ext.tmp" "filename.ext" 前加上)。然后,您无需删除刚刚重命名的文件,因为重命名后该文件不再存在。