如何使批处理文件在显示正在编辑的内容时编辑用户想要的文本文件?

时间:2012-12-21 13:59:40

标签: batch-file word-processor

我目前正在创建包含批处理文件的文字处理软件。我想知道是否有人知道如何在屏幕上显示文本,以便用户可以编辑它。我已经有了一个用于创建,查看和删除文件的系统,但编辑现有文件让我感到难过。这是批处理文件的代码:

@echo off
title Word Processor
:MAIN
cls
echo Type help for help
set /p input=Command-
if %input%==view goto view
if %input%==new goto new
if %input%==exit exit
if %input%==edit goto edit
if %input%==help goto help
if %input%==delete goto delete
:new
cls
set /p words=Type-
set /p name=Name-
echo %words% >> %name%.txt
pause >nul
goto MAIN
:view
cls
set /p file=File to open (without .txt)-
cls
type %file%.txt
pause >nul
goto MAIN
:help
cls
type help.txt
pause >nul
goto MAIN
:edit
cls
echo Not Yet Implemented
pause >nul
exit
:delete
cls
set /p del=File to Delete-
del %del%.txt
echo Deleted...
pause >nul
goto MAIN

2 个答案:

答案 0 :(得分:0)

您可以在VBScript的帮助下完成此操作。

VBScript看起来像这样

Set WshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(WScript.Arguments(0), 1)
Do Until objFile.AtEndOfStream
    strCharacters = objFile.Read(1)
    WshShell.SendKeys strCharacters
Loop

将其另存为send.vbs,批处理文件的编辑部分将如下所示

set /p file=File to edit-
cscript.exe rep.vbs %file%
set /p input=
echo %input% >%file%

基本上,您获得要编辑的文件,并将该文件作为参数调用VBScript。批处理文件然后落到下一行,这是另一个等待输入的set /p

然后当VBScript运行时,它会读取您选择的文件并通过SendKeys发送字符,就像模拟击键一样。

这些字符最终被粘贴到控制台上,因此您可以根据需要进行编辑。当您按Enter键时,编辑将保存到变量中,并使用新编辑覆盖文件。

或者你也可以使用cmd内置的文本编辑器edit,它有一些用户可以用来编辑和保存文件的gui。

只需输入editedit %file%即可使用它。

希望这有帮助

答案 1 :(得分:0)

试试这个:

编辑file.txt

这可能是你想要的

这是一个16位的程序,它几乎就像记事本