2017-10-16 4 views
-1

J'ai trouvé le code (voir ci-dessous) mais je n'ai pas la possibilité de coder. Je veux sélectionner la partie désirée (lignes) du fichier texte et enregistrer dans un autre fichier texte! Je vous remercie pour votre aide!Script de lot à afficher de n à m lignes à partir d'un fichier texte et enregistrer un nouveau fichier texte

CODE:

@echo OFF 
:: Get the number of lines in the file 
set LINES=0 
for /f "delims==" %%I in (data.txt) do (
set /a LINES=LINES+1 
) 

:: Print the last 10 lines 
set /a LINES=LINES-10 
more +%LINES% < data.txt 
+0

'plus +% LIGNES% < data.txt > newfile.txt'? – DodgyCodeException

Répondre

0

Remarque Ce qui suit reflète votre corps de question et le contenu de code n'ignorant votre texte de titre de la question.

Voici un script qui fera ce que votre code de question fait, sauf qu'il sort dans un fichier.

Le fichier de sortie sera écrit dans le répertoire en cours et être nommé, Nom -Dernière X.ext. Le nom et .ext correspondra au même nom et à la même extension que votre fichier source et X sera le nombre de lignes de sortie.

Les seuls changements que vous avez besoin de faire serait le fichier source sur la ligne 3 et le dernier nombre de lignes à sortie sur la ligne 4.

@Echo Off 

Set "SrcFile=data.txt" 
Set "LastNum=10" 

Rem If SrcFile doesn't exist or LastNum isn't at least 1 exit the script 
If Not Exist "%SrcFile%" Exit/B 
If 1%LastNum% Lss 11 Exit/B 

Rem Calculate line number for first line of output 
Set "#=-%LastNum%" 
For /F "Delims=" %%A In ('Find /V /C ""^<"%SrcFile%"') Do Set/A #+=%%A 

Rem Re-calculation for files with less lines than LastNum 
If %#% Lss 0 Set/A "LastNum+=#, #=0" 

Rem Create destination filename for output 
For %%A In ("%SrcFile%") Do Set "$=%%~nA-Last%LastNum%%%~xA" 

Rem Output to destination file 
More +%#% "%SrcFile%">"%$%" 

Notez que More va changer onglet s à une séquence de espace

s
+0

Salut Compo! Merci beaucoup. C'était très bien, mais ça ne m'aide pas beaucoup! Aidez-moi, s'il vous plaît! J'ai des fichiers texte masa que je dois éditer. Je veux prendre le nombre de lignes requises (de n à m) d'un fichier texte et enregistrer dans un autre fichier texte. Les fichiers texte contiennent d'autres caractères spéciaux! J'ai vérifié ce code (findstr/R/N "^" data.txt) qui montre le nombre de lignes dans le fichier texte. Je dois commencer à partir du début du fichier texte (ligne 0). Par exemple. Enregistrer le texte de 0 à 4 lignes, puis de 9 à 14 lignes, etc. S'il vous plaît aidez-moi! Je suis très reconnaissant pour toute votre aide! – user8785018

+0

Le ** Note **, en haut de ma réponse, a tout dit. Ici, vous écrivez votre propre code et nous vous aidons à résoudre les problèmes. J'ai corrigé le code que vous avez fourni. Si vous voulez de l'aide avec un scénario différent, alors vous devez [modifier votre question] (https://stackoverflow.com/posts/46773629/edit) en fournissant le code que vous avez créé pour accepter, analyser et tenter de sortir l'information tu veux. Il ne s'agit pas d'un site de demande de code gratuit où vous fournissez une liste de spécifications et nous vous proposons une solution. – Compo