使用批处理脚本从多个相同的 .txt 文件中复制某个值
copy a certain value from multiple identical .txt files using batch script
我想将某个文件夹中的多个“相同”.txt 文件中的某个值复制到一个新的单个文件 (Ebinds.txt)。这些文件被命名为 log1.txt、log2.txt 等,我感兴趣的值总是放在同一个位置,也就是第 22 行,第 2 个值。
我搜索我的价值并复制它的部分工作正常。
我的问题是当我尝试遍历文件夹中的所有文件时(我得到的只是回显而不是值)
下面是当我的文件夹中有 4 个文件时我得到的代码示例。
@echo off
FOR /l %%P IN (1,1,4) DO (
set InFile=C:\Users\nuca\Desktop\dock_copy_Ebind\nodV_log%%P.txt
set /a "line = 0"
for /f "tokens=2 delims= " %%L in ("%InFile%") do (set /a "line = line + 1"
if !line!==22 set thing=%%L
)
endlocal && set thing=%thing%
echo %thing% >>C:\Users\nuca\Desktop\dock_copy_Ebind\Ebinds.txt
)
在当前代码中,在 @echo off
下面添加 setlocal
enabledelayedexpansion
然后将变量从 %thing%
更改为 !thing!
但是,您不需要每次都set
变量:
@echo off
setlocal enabledelayedexpansion
for %%a in ("C:\Users\nuca\Desktop\dock_copy_Ebind\nodV_log*.txt") do (
set cnt=
for /f "usebackq delims=" %%i in ("%%~a") do (
set /a cnt+=1
if !cnt! equ 22 echo %%i
)
)
我想将某个文件夹中的多个“相同”.txt 文件中的某个值复制到一个新的单个文件 (Ebinds.txt)。这些文件被命名为 log1.txt、log2.txt 等,我感兴趣的值总是放在同一个位置,也就是第 22 行,第 2 个值。 我搜索我的价值并复制它的部分工作正常。 我的问题是当我尝试遍历文件夹中的所有文件时(我得到的只是回显而不是值)
下面是当我的文件夹中有 4 个文件时我得到的代码示例。
@echo off
FOR /l %%P IN (1,1,4) DO (
set InFile=C:\Users\nuca\Desktop\dock_copy_Ebind\nodV_log%%P.txt
set /a "line = 0"
for /f "tokens=2 delims= " %%L in ("%InFile%") do (set /a "line = line + 1"
if !line!==22 set thing=%%L
)
endlocal && set thing=%thing%
echo %thing% >>C:\Users\nuca\Desktop\dock_copy_Ebind\Ebinds.txt
)
在当前代码中,在 @echo off
下面添加 setlocal
enabledelayedexpansion
然后将变量从 %thing%
更改为 !thing!
但是,您不需要每次都set
变量:
@echo off
setlocal enabledelayedexpansion
for %%a in ("C:\Users\nuca\Desktop\dock_copy_Ebind\nodV_log*.txt") do (
set cnt=
for /f "usebackq delims=" %%i in ("%%~a") do (
set /a cnt+=1
if !cnt! equ 22 echo %%i
)
)