2011-08-25 3 views
0

je besoin d'aide dans le texte de fractionnement dans un appel de documents date_baseline.txt Le contenu de ce fichier est:LOT - manipulation de chaînes

1st Day = 2011-08-26 
2nd Day = 2011-07-30 
3rd Day = 2011-07-29 

je dois prendre chacun la date indiquée ci-dessus se. Des pros avec des connaissances de lot?

merci à l'avance!

Répondre

1

Ici vous allez!

for /f "tokens=3 delims== " %i in (date_baseline.txt) do @echo %i

Si vous voulez mettre cela dans un fichier batch,

@echo off 

for /f "tokens=3 delims== " %%i in (date_baseline.txt) do (
    echo %%i 
) 

Notez que juste extraire le dernier fragment, 3 est suffisante.

+0

est-il un moyen de les retirer et de mettre chacune de ces dates dans une variable? –

0

Vous pouvez utiliser vbscript,

Set objFS=CreateObject("Scripting.FileSystemObject") 
strFile = "c:\test\file" 
Set objFile = objFS.OpenTextFile(strFile) 
Do Until objFile.AtEndOfLine 
    strLine= objFile.ReadLine 
    s = Split(strLine,"=") 
    WScript.Echo s(1) 'display the date column 
Loop 
objFile.Close 
1

Si par "sortez", tu veux dire "extrait", ce qui suit serait un bon point de départ:

@setlocal enableextensions enabledelayedexpansion 
@echo off 
for /f "usebackq tokens=4" %%a in (input.txt) do (
    call :process %%a 
) 
endlocal 
goto :eof 

:process 
    set myvar=%1 
    echo !myvar! 
    goto :eof 

Ce sorties:

2011-08-26 
2011-07-30 
2011-07-29 

La fonction process peut être modifié pour faire ce que vous voulez. À l'heure actuelle, il suffit d'enregistrer dans une variable puis imprime cela, mais vous pouvez faire le traitement arbitraire complexe là-dessus.

+0

je voudrais le stocker dans une variable. Puis-je savoir comment? :) –

+0

@ user866800, en supposant que vous voulez faire quelque chose à chaque jour, je l'ai mis dans un appel à une fonction. Tout ce que vous voulez faire avec les dates peut être mis là. – paxdiablo