如何运行文本文档编程命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何运行文本文档编程命令相关的知识,希望对你有一定的参考价值。
在学习Linux系统时,不可避免地会用到命令行来实现程序的执行等,那怎样在终端中利用命令行编写文本文件呢?下面就让学习啦小编教大家怎样用命令行编写文本文件吧。用命令行编写文本文件的方法
打开虚拟机,在主文件夹里新建文件夹,比如此时新建文件夹test。
打开终端,将当前目录转换至test目录。命令行输入cd ./test即可。
在test目录下编辑一个ipc.c文件,命令行输入vi ipc.c,回车进入文本编辑模式。
在文本编辑模式下,可以直接键盘输入文本或者点击编辑框上角选择“粘贴”。
文本编辑完成之后,退出编辑状态,可以按“Esc”键,输入“:wq”,回车直接退出。
之后,如果需要修改文件,可以打开文件所在目录,直接修改,这样比较方便。 参考技术A 要先编译然后运行的,如果已经可以执行的那就按照下面做:
如果是windows下直接在程序所在的文件夹下执行 "./程序名.exe"
如果是linux下就执行 “./程序完整名” 参考技术B 这个你最好是不要强行的运行这个文档,这样子是不好的
如何将文本文档批量拆分为变量
【中文标题】如何将文本文档批量拆分为变量【英文标题】:How to split text document into variables in batch 【发布时间】:2021-08-31 10:43:14 【问题描述】:所以我想知道是否有一种方法可以让批处理文件读取单独的文本文档并将特定的代码行转换为具有相同值的变量,就像来自文档一样。所以让批处理脚本读取文本文档,并使用其中的信息来创建它自己的变量。 例如。
TEXT.txt:
test==a
test2==b
test3==c
然后批处理脚本会读取该文本并将其转换为与 TEXT.txt 文档中给出的值相同的可用变量
像这样: 可用的批处理变量:
%test% is "a"
%test2% is "b"
%test3% is "c"
等等
此外,批处理文件是否可以使用set /p opt= Userinput:
读取用户输入,然后获取用户输入并将输入的每个字母转换为单独的单独变量?
例如。
当提示set /p opt= Userinput:
时,用户输入:“hello”,批处理脚本将用户输入转换为:
%letter1% is "h"
%letter2% is "e"
%letter3% is "l"
%letter4% is "l"
%letter5% is "o"
批处理脚本是否也可以读取用户输入中的空格,例如用户输入是“大家好”,然后批处理脚本会说
%letter1% is "h"
%letter2% is "i"
%letter3% is "0"
%letter4% is "a"
%letter5% is "l"
%letter6% is "l"
【问题讨论】:
每个条目是否单独一行?你能摆脱那个多余的等号吗? @Squashman 是的,每个条目都在单独的行上。抱歉,由于某种原因,我无法让它正确显示代码 好吧,我修复了一次,所以在你再次覆盖之前,你应该看看我是如何做到的。无论如何,您希望%test%
的内容是==a
、=a
还是a
?
@Compo 我希望 %test% 在本例中为“a”
【参考方案1】:
要获取示例 TEXT.txt
中显示的内容,您可以使用 For /F
循环并使用 =
字符作为分隔符:
@For /F "Tokens=1*Delims==" %%G In ('find "=" ^<"TEXT.txt"')Do @Set "%%G=%%H"
不过,我不想依赖%PATH%
和%PATHEXT%
:
@For /F "Tokens=1,* Delims==" %%G In ('%SystemRoot%\System32\find.exe "="
0^<"TEXT.txt"') Do @Set "%%G=%%H"
至于您更有趣的问题,下面的batch-file 尝试将用户输入的每个字符保存到单独的变量中。
@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion
:GetInput
Set "Input="
Set /P "Input=Enter your string here>"
If Not Defined Input GoTo GetInput
For /F "Delims==" %%G In ('"(Set Char[) 2> NUL"') Do Set "%%G="
Set "i=0" & For /F Delims^=^ EOL^= %%G In ('(%SystemRoot%\System32\cmd.exe /V /U
/S /D /C "(Echo=!Input!)"^) ^| %SystemRoot%\System32\find.exe /V ""') Do (
Set /A i += 1 & SetLocal EnableDelayedExpansion
For %%H In (!i!) Do EndLocal & Set "Char[%%H]=%%G")
(Set Char[) 2>NUL
Pause
添加最后两行只是为了给您一些已完成的视觉反馈,您显然会在那里使用自己的代码......
【讨论】:
那么在前 2 个示例中究竟是什么设置了变量?因为我似乎无法弄清楚这些变量的设置是什么。在包含以下文本a = hi
的文件上运行脚本后,我尝试了 echo %%G
、echo %%H
和 echo %Delims%
对不起,哈哈,我不是最擅长批处理
它完全符合您对@Gabrielnigme20 的期望!鉴于您提交的TEXT.txt
内容,您应该能够在提供的示例代码之后的任何位置打印以下内容!例如@Echo %%test%% is "%test%"
、@Echo %%test2%% is "%test2%"
、@Echo %%test3%% is "%test3%"
。但是,您在上面的评论中提供的示例与您提出的问题不匹配,因此提供的代码未提供您期望的结果。我只回答了你最初提出的问题!该评论将创建一个变量%a %
,其内容为<space>hi
。
哦,我明白了。是的,现在我得到了它,它工作得很好。很抱歉给您带来不便以上是关于如何运行文本文档编程命令的主要内容,如果未能解决你的问题,请参考以下文章