Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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
Windows 使用其他批的结果重命名批_Windows_Batch File_Cmd - Fatal编程技术网

Windows 使用其他批的结果重命名批

Windows 使用其他批的结果重命名批,windows,batch-file,cmd,Windows,Batch File,Cmd,我正在尝试创建一个批处理文件,用于扫描文档中的条形码,并将该文件重命名为条形码 为此,我使用了两个批处理文件。其中一个批处理文件(test.bat)执行扫描条形码的exe: @echo off zbarimg.exe --raw -D -q %1 在第二个批处理文件中,我希望它扫描扩展名为*.tif的目录中的每个文件,扫描条形码,然后将其重命名为条形码编号。第二批(rename.bat)如下所示: for /f "tokens=*" %%a in ('dir /b *.tif') do (t

我正在尝试创建一个批处理文件,用于扫描文档中的条形码,并将该文件重命名为条形码

为此,我使用了两个批处理文件。其中一个批处理文件(test.bat)执行扫描条形码的exe:

@echo off
zbarimg.exe --raw -D -q %1 
在第二个批处理文件中,我希望它扫描扩展名为*.tif的目录中的每个文件,扫描条形码,然后将其重命名为条形码编号。第二批(rename.bat)如下所示:

for /f "tokens=*" %%a in ('dir /b *.tif') do (test.bat %%a)
我的主要问题是,如何合并重命名命令,将文件重命名为test.bat的结果

简而言之,以下是过程: 1.有一个名为test.tif的文件 2.正在扫描文件以查找条形码(即123456789) 3.test.tif重命名为123456789.tif

我想知道如何在变量中捕获test.bat的结果,以便在使用rename命令时调用它


谢谢

cmd将结果输入变量的尴尬方式是使用FOR循环

SETLOCAL ENABLEDELAYEDEXPANSION

SET "BCNAME="

for /f "tokens=*" %%a in ('dir /b *.bat') do (
    FOR /F "usebackq tokens=*" %%b IN (`CALL wc "bc.bat"`) DO (SET "BCNAME=%%~b")
    echo REN "%%~a" "!BCNAME!.tif"
)
当它生成正确的REN命令时,删除
echo


此外,这也不打算让多个.tiff文件具有相同的条形码结果。

test.bat
捕获输出的方法与从
dir
命令捕获输出的方法相同:通过
for/F
命令

最简单的解决方案是消除
test.bat
文件,并在同一批处理文件中插入
zbarimg.exe
程序:

for /f "tokens=*" %%a in ('dir /b *.tif') do (
   for /F %%b in ('zbarimg.exe --raw -D -q %%a') do (
      ren "%%a" "%%b.tif"
   )
)
但是,如果要保留
test.bat
文件,只需执行以下操作:

for /f "tokens=*" %%a in ('dir /b *.tif') do (
   for /F %%b in ('test.bat %%a') do (
      ren "%%a" "%%b.tif"
   )
)

谢谢,这正是我想要的!谢谢我可能会创建一个结构,将相同的条形码重命名为_1、_2等。