【发布时间】:2023-04-11 01:21:02
【问题描述】:
我正在尝试删除 .txt 文件中的前 200 行。
上面的代码已经工作了几个月,但最近才停止工作,代码运行到 more 命令然后停止。
如果我按几次键盘,它会触发一些东西并开始执行下一行代码。
我希望这段代码在运行时无需手动按几次键盘即可运行。
附带说明,如果我关闭终端窗口而不是强制执行脚本,然后尝试删除新的 database2.txt 文件,我会收到一个错误,指出该文件正在被 more.com 使用,因此无法删除.
我的代码:
cd c:\folder
more /E +200 Database.txt > Database2.txt
timeout 10
del /f Database.txt
timeout 10
rename Database2.txt Database.txt
timeout 10
exit;
我正在跑步:
- Windows 10 家庭版 1703
- 操作系统版本:15063.674
- 内存:6GB
- X64 处理器
- 64 位操作系统
- 英特尔酷睿 i5-2430m cpu@2.40ghz
感谢任何帮助!
【问题讨论】:
-
如果是不超过65534行的文本文件,使用
more +200 < Database.txt > Database2.txt;如果文件更大,more等待用户输入... -
这个我试过了,它并没有阻止命令挂起。 database.txt 文件少于 10,000 行
-
该命令将输出传送到 database2.txt 文件,但不会移动到批处理文件的下一行。创建 database2.txt 后,如何强制批处理脚本移至下一行?似乎更多的命令正在等待我按空格键以完成命令。我怎样才能避免这种情况?我只需要在创建 database2.txt 后完成命令
-
我会假设你的数据中有一些奇怪的控制字符。什么创建了 DB 文本文件?
-
我手动创建它的数据库文件。这个脚本以前工作过,idk 它已经停止了,也许是一些有线 Windows 更新。我已将我的电脑完全重置为出厂设置,但我仍然遇到同样的问题。如果我用“start cmd more +200 Database.txt >database2.txt”强制命令通过,我最终会得到一个空白数据库。如果我不强制执行,脚本将等到我按两次空格键。真的很沮丧,不知道我还能做什么。有没有其他方法可以在不使用 more 命令的情况下删除前 200 行?
标签: batch-file cmd command