web-dev-qa-db-fra.com

Lecture à partir d'un fichier texte - Lot

J'ai un fichier texte, a.txt:

Bonjour le monde
Bonne après-midi

J'ai écrit un script batch pour lire le contenu de ce fichier ligne par ligne:
FOR /F "tokens=* delims=" %%x in (a.txt) DO echo %%x

Je reçois une sortie en tant que "Hello" "World" en raison du comportement par défaut du délimiteur (espace). Comment puis-je remplacer ce comportement pour obtenir la sortie comme "Hello World" "Good Afternoon"

10
Tjs

Votre code "for/f" tokens = * delims = "%% x in (a.txt) do echo %% x" fonctionnera sur la plupart des systèmes d'exploitation Windows, sauf si vous avez modifié des commandes.

Vous pouvez donc plutôt "cd" dans le répertoire à lire avant d'exécuter la commande "for/f" pour suivre la chaîne. Par exemple, si le fichier "a.txt" se trouve dans C:\documents and settings \% USERNAME%\desktop\a.txt, vous utiliserez ce qui suit.

cd "C:\documents and settings\%USERNAME%\desktop"
for /f "tokens=* delims=" %%x in (a.txt) do echo %%x
echo.
echo.
echo.
pause >nul
exit

Mais comme cela ne fonctionne pas sur votre ordinateur pour x raisons, il existe un moyen plus simple et plus efficace de le faire. Utilisation de la commande "type".

@echo off
color a
cls
cd "C:\documents and settings\%USERNAME%\desktop"
type a.txt
echo.
echo.
pause >nul
exit

Ou si vous souhaitez qu'ils sélectionnent le fichier à partir duquel écrire dans le lot, vous pouvez procéder comme suit.

@echo off
:A
color a
cls
echo Choose the file that you want to read.
echo.
echo.
tree
echo.
echo.
echo.
set file=
set /p file=File:
cls
echo Reading from %file%
echo.
type %file%
echo.
echo.
echo.
set re=
set /p re=Y/N?:
if %re%==Y goto :A
if %re%==y goto :A
exit
7
cmd