Windows 使用其他批的结果重命名批
我正在尝试创建一个批处理文件,用于扫描文档中的条形码,并将该文件重命名为条形码 为此,我使用了两个批处理文件。其中一个批处理文件(test.bat)执行扫描条形码的exe: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
@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等。