首页 > 解决方案 > 批处理不起作用:编译一个 .txt 文件

问题描述

这个批处理命令过去可以工作,但现在只创建一个空的 .txt 文件。目的是从大量文件的第二行中创建一个 .txt 文件。谢谢你的帮助。

@echo off & setlocal
set "RootFolder=C:\"
set "FileNamePattern=*.txt"
set "OutFile=C:\VersionA.txt"

>"%FileList%" (
 for %%f in ("%RootFolder%\%FileNamePattern%") do (
    echo %%f
  )
)

>"%OutFile%" (
  for /f "usebackq delims=" %%a in ("%FileList%") do (
    for /f "skip=1 tokens=1* delims=:" %%b in ('findstr /n "^" "%%a"') do  (
  echo(%%c
)
  )
)

标签: windowsbatch-file

解决方案


你真的不需要Set一个变量 to FileList,你可以只嵌套For循环而不是写入然后从文本文件中读取。

@Echo Off
Set "RootFolder=C:\"
Set "FileNamePattern=*.txt"
Set "OutFile=C:\VersionA.txt"

If Not Exist "%RootFolder%%FileNamePattern%" GoTo :EOF
(   For %%A In ("%RootFolder%%FileNamePattern%") Do (
        For /F "Skip=1 Tokens=1* Delims=:" %%B In ('FindStr /N "^" "%%A"'
        ) Do Echo=%%C))>"%OutFile%"

我已经删除了\from between%RootFolder%%FileNamePattern%因为你已经有一个尾随 on %RootFolder%。如果将来您修改,%RootFolder%请确保它也有一个尾随\.


推荐阅读