Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 在windows批处理文件中使用两个变量重命名文件_Batch File_Cmd - Fatal编程技术网

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”是如何推导出来的,回答起来可能会更容易。