我有一个问题,在循环中保存txt文件我删除txt文件的前三行 . 到目前为止,我的代码如下:
@echo off
setlocal enableextensions enabledelayedexpansion
set /a count=1
for %%a in ("C:\Users\%Username%\Desktop\conduct\*.txt") do (
echo %%a
Copy NUL C:\Users\%Username%\Desktop\conducterei\conduct!count!.txt
for /f "skip=3 tokens=*" %%g in (%%a) do (
>>"C:\Users\%Username%\Desktop\conducterei\conduct!count!.txt" echo %%g
)
set /a "count+=1"
)
pause
我读到For / f循环不接受通配符所以我做了一个嵌套循环,但现在我有复制保存在%% g变量中的文本的问题 . DOS提示我的目标文件夹不存在,但我刚刚在第一个for循环中使用COPY NUL创建它 .
第二个for循环中的命令似乎不正确将%% g保存在文本文件中 . 原始文本文件如下所示:
blabla
blank
blank
4 5 6 7 8 9 2143
1 2 6 7 1 0 9763
. . . . . . .
我只想要新文本文件中的数字!我已经在这个线程(Batch File To Copy Every Line In .txt File And Then Create New .txt File For Each Line)中读到了关于这个问题的信息,但是只有一个txt文件我需要做很多事情;)
我希望我的问题很明确:)
格雷茨巴夫
1 回答
不,您试图创建文件,而不是文件夹 . 并根据您报告的错误消息,该尝试失败,因为您提供的路径不存在 . 我怀疑输入错误 - 仔细查看您在COPY和ECHO行中使用的路径,并验证它确实存在 . 如果没有,则使用
MD
或MKDIR
创建它 .注意 - 在附加到文件之前,不需要创建空文件 .
>>
将创建该文件(如果该文件尚不存在) .使用MORE可以更简单,更快速地复制文件,跳过N行 .
该技术具有以下限制:
<TAB>
个字符将转换为空格字符串如果文件中有超过64k行,则更多失败(挂起)