0
我正在編寫批處理腳本,我需要從中更新特定行中的文本文件。 例如:在文本文件行號30中有「080-22368865 Ware house」, 腳本必須僅更改「080-22368865」而不是倉庫,因爲用戶在腳本運行後輸入命令提示符爲「 022-26986528「 然後在文本文件中它應該在行號30中顯示」022-26986528 ware-house「。使用用戶輸入值更新文本文件中特定行號的批處理腳本
在此先感謝。
我正在編寫批處理腳本,我需要從中更新特定行中的文本文件。 例如:在文本文件行號30中有「080-22368865 Ware house」, 腳本必須僅更改「080-22368865」而不是倉庫,因爲用戶在腳本運行後輸入命令提示符爲「 022-26986528「 然後在文本文件中它應該在行號30中顯示」022-26986528 ware-house「。使用用戶輸入值更新文本文件中特定行號的批處理腳本
在此先感謝。
你的問題錯過了幾個細節,所以下面的批處理文件只是一個起點。行號在第一個參數中給出。
@echo off
setlocal EnableDelayedExpansion
call :editLine %1 <input.txt> output.txt
goto :EOF
:editLine num
set /A skipLines=%1-1
if %skipLines% gtr 0 (
rem Copy lines before the target
for /L %%i in (1,1,%skipLines%) do (
set line=
set /P line=
echo(!line!
)
)
rem Edit the target line
set line=
set /P line=
echo Line %1: "!line!"
for /F "tokens=1*" %%a in ("!line!") do (
set /P firstToken=Enter new value for "%%a":
echo !firstToken! %%b
)
rem Copy the rest of lines
:nextLine
set line=
set /P line=
if not defined line exit /B
echo !line!
goto nextLine
如果在目標行之後有空行,則上一個程序將失敗:複製過程在該點停止。正如我之前所說,這個和其他細節可以修復...
所以,你有什麼嘗試?你發現了什麼問題?如果你想要一個起點,請更準確地解決你的問題。那是Windows嗎?總是同一行號?在運行腳本之後,如何改變用戶輸入的內容? –