【问题标题】:"more" command will not save to file“更多”命令不会保存到文件
【发布时间】: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


【解决方案1】:

感谢大家帮助我解决我的问题,但我已经找到了解决方案。我以这种方式格式化了命令:

">数据库2.txt ( 更多 +200 数据库.txt )"

如果有人能解释为什么会发生这种情况,或者这种格式如何解决了我的问题,而它应该是相同的命令,那就太好了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-15
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多