Batch file 在windows批处理文件中使用两个变量重命名文件
我试图重命名一个批处理文件中包含两个变量的文件。我有一个名为Batch file 在windows批处理文件中使用两个变量重命名文件,batch-file,cmd,Batch File,Cmd,我试图重命名一个批处理文件中包含两个变量的文件。我有一个名为foo\u hello.txt的文件,我想把它重命名为foo\u 20\u hello\u 50.txt 20和50是两个不同的#定义在同一头文件中 我成功地用一个变量重命名了它 for /f "tokens=3" %%i in ('FINDSTR /C:"Place" ..\header.h') do ren foo_hello.txt foo_hello_%%i.txt 但是我不知道如何在文件名中添加其他变量。您的问题缺少几个细节
foo\u hello.txt
的文件,我想把它重命名为foo\u 20\u hello\u 50.txt
20和50是两个不同的#定义在同一头文件中
我成功地用一个变量重命名了它
for /f "tokens=3" %%i in ('FINDSTR /C:"Place" ..\header.h') do ren foo_hello.txt foo_hello_%%i.txt
但是我不知道如何在文件名中添加其他变量。您的问题缺少几个细节:输入文件的格式是什么?每个值只有一行吗?文件中的第一个值是什么?或者,他们可以按任何顺序来 下面的批处理文件假定值按“放置”和“监视”顺序放置。如果这不是真的,代码需要更改
@echo off
setlocal
set "Place="
for /f "tokens=3" %%i in ('FINDSTR "Place Watch" header.h') do (
if not defined Place (
set "Place=%%i"
) else (
set "Watch=%%i"
)
)
ECHO ren foo_hello.txt foo_%Watch%_hello_%Place%.txt
输入文件:
First line
#define Place 50
Mid line
#define Watch 20
Last line
输出示例:
ren foo_hello.txt foo_20_hello_50.txt
这不是真正的Bash,是吗?这看起来像cmd,不是Bash。你把Windows批处理文件和Bash搞混了。解释所有你想知道的。如果你告诉我们“50”和“25”是如何推导出来的,回答起来可能会更容易。