Bash 批次为%var%";%%g在example.txt中do save=%%g
昨天我的一个朋友给我这个代码,它从一个文件中提取一行。 我不知道它是如何工作的,我需要将它移植到bashBash 批次为%var%";%%g在example.txt中do save=%%g,bash,loops,batch-file,for-loop,Bash,Loops,Batch File,For Loop,昨天我的一个朋友给我这个代码,它从一个文件中提取一行。 我不知道它是如何工作的,我需要将它移植到bash @echo off setlocal EnableDelayedExpansion set list="List_of_pages.txt" :: Count lines and generate number for /f "usebackq" %%c in (`find /V /C "" ^< %list%`) do set lines=%%c
@echo off
setlocal EnableDelayedExpansion
set list="List_of_pages.txt"
:: Count lines and generate number
for /f "usebackq" %%c in (`find /V /C "" ^< %list%`) do set lines=%%c
set /a chosen = 0
:AA
set /a chosen = %chosen% +1
set /a skiplines= %chosen% -1
if chosen equ lines goto eof
:: gets the line
set skip=
if %skiplines% gtr 0 set skip=skip=%skiplines%
for /f "usebackq %skip% delims=" %%c in (%list%) do set "current=%%c" & goto continue
:continue
echo %current%
@echo关闭
setlocal EnableDelayedExpansion
set list=“list\u of_pages.txt”
::计算行数并生成编号
对于(`find/V/c”“^<%list%`)中的/f“usebackq”%%c,请设置行=%%c
设置/a选择=0
:AA
设置/a所选=%selected%+1
设置/a跳过项=%selected%-1
如果选择equ lines转到eof
::获取线路
设置跳过=
如果%skipline%gtr 0设置skip=skip=%skipline%
对于/f“usebackq%skip%delims=“%%c in(%list%)请设置“current=%%c”&继续
:继续
回波%电流%
现在,对于/f“usebackq%skip%delims=“%%c in(%list%)确实设置了“current=%%c”&goto continue
意味着什么?我真正不知道的是%skip%
关于如何在bash中使用这一行有什么帮助吗?请注意以下批处理的基本知识。。。这将使您能够轻松地将批处理脚本转换为bash
- %符号中包含的所有字符串都是变量。(例如,可变百分比%)
- Set是一个用于为变量赋值的命令。(或初始化变量)
- For是一个循环命令,您必须了解循环的工作原理
- 的子命令用于命令(循环)-使用backq、Skip、Delims
跳过:告诉CMD先跳过文本文件中的N行数(它不会读取这些行)
Delims:告诉您要从何处切掉字符串(文件行)-例如,Delims=,会将行与所有逗号分开 我的分析: 在这里,我认为-这段代码将做的是获取一个文件,并返回用户选择的文本文件的一行 它正在读取第5行中的一个文件List\u of_pages.txt。并且,它应该是Set/p Skip=@第12行。(不要计算空行)。并返回所选行@line14 希望,我帮了你!:)