簡體   English   中英

批處理:顯示所有跳過編號以上的行,僅當需要跳過行號時

[英]Batch: All lines above number skip are shown, when only the line number skip is needed

我正在嘗試創建一個批處理文件,以(姓氏)(名字的第一個字母)的格式將名稱列表轉換為用戶名,例如 Robert Smith -> SmithR 我已經對大部分內容進行了排序,但是我我在循環文本文檔中的行時遇到問題,我不確定為什么要這樣做。 我想知道你們是否可以告訴我如何解決它

提前致謝^-^

代碼: http : //pastebin.com/zDtJrPrV名稱: http : //pastebin.com/xbh3WTSv

你的腳本充滿了低效率,而且比它需要的要長得多。 您的第一個for /f循環受到無用使用findstr ,如果您的名稱文件包含任何空行,這實際上弊大於利。 並且for /f "skip=N"名稱文件的每一行啟動一個新的for /f "skip=N"將導致文件在每次迭代時被打開、讀取和關閉,而實際上它只需要打開一次。 使用find /c計算文本文件中的行數更優雅。

在這里,用鹽調味:

@echo off
setlocal

set "names=names.txt"
set "outfile=outfile.txt"

for /f %%I in ('find "" /v /c ^< "%names%"') do set /a "lines=%%I"

choice /c YN /n /m "Preparing to process %lines% lines.  Continue? (y/n) "

if errorlevel 2 goto :EOF

>"%outfile%" (
    setlocal enabledelayedexpansion
    for /f "usebackq tokens=1*" %%I in ("%names%") do (
        set "first=%%I"
        echo %%J!first:~0,1!
    )
    endlocal
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM