Je souhaite écrire une ligne de texte sur une ligne spécifique d'un fichier texte existant en utilisant la programmation DOS dans Windows XP. Je souhaite également saisir le numéro de ligne de l'utilisateur. Toute aide serait appréciée.Programmation de fichier par lots Windows
Répondre
Exemple de demander à l'utilisateur:
:MENU
SET /P TYPE=Type the line number and press enter:
if "%TYPE%"=="1" goto ONE
if "%TYPE%"=="2" goto TWO
if "%TYPE%"=="3" goto THREE
if "%TYPE%"=="4" goto FOUR
if "%TYPE%"=="5" goto FIVE
goto MENU
Note: La commande FOR avec l'option L peut générer une plus grande crosscheck; pour plus d'informations, tapez c:> FOR /?
POUR/L% variable IN (début, étape, fin) DO commande [paramètres]
The set is a sequence of numbers from start to end, by step amount.
So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would
generate the sequence (5 4 3 2 1)
POUR/L %% un IN (1,1,1000) DO si « TYPE% % "==" %% un » goto: VALIDNUM
@echo off
rem this only prompts the user for a number
set VALIDNUM=
:MENU
cls
echo.
echo.
If NOT "%VALIDNUM%"=="" echo the number is %VALIDNUM%
echo.
SET /P TYPE=Type a line number and press enter:
FOR /L %%a IN (1,1,1000) DO if "%TYPE%"=="%%a" set VALIDNUM=%TYPE%
goto MENU
Peut-être que vous ne devriez pas utiliser Batch pour cela. Ou peut-être que vous ne devriez pas utiliser de lot du tout.
Peut-être que quelque chose comme ça peut fonctionner. Je ne l'ai pas testé à travers.
setlocal enabledelayedexpansion
SET /a counter=0
echo. > newfile
for /f "usebackq delims=" %%a in (yourfile.txt) do (
if "!counter!"=="%1" echo "YOUR SPECIFIC LINE" >> newfile
if not "!counter!"=="%1" echo %%a >> newfile
set /a counter+=1
)
move newfile yourfile.txt
Mais cela ne fonctionnera pas si vous utilisez DOS et non une version de Windows NT. (Modifier vos tags si vous utilisez Windows et non dos)
utilisateur advanced batch file editor Dr.Batcher, vous serez en mesure de créer de tels scripts juste en quelques clics!
Merci pour la réponse précédente.J'utilise Windows XP. J'ai l'intention d'écrire un fichier batch pour cela. Je l'ai essayé. Mais "!" symbole provoque une erreur.Je veux écrire une ligne de texte à une ligne spécifique dans un fichier texte déjà existant.J'ai aussi besoin d'entrer le numéro de ligne. De l'utilisateur. Maintenant, ce code efface mon fichier existant. Plus d'aide? – 1355
La sixième ligne devrait être si "! Counter!" == "% 1" echo %% a >> nouveaufichier –
Oui, je n'ai pas touché au lot depuis longtemps. Corrigé cela. suis libre de modifier mon message pour d'autres erreurs. – BatchyX