Y at-il quelque chose dans un fichier BATCH qui double un caractère%?Y a-t-il quelque chose pour doubler la sortie d'un caractère%?
Le fichier test.txt INPUT contient le
Hello World
The filename is : filename with spaces and 50% percentages signs.txt
The %~nf removes extenstions
Is there something to double a % charactor?
As I would like 50% to be outputed as 50%%
because the output of this batch is to create input for another batch.
suivant le fichier batch.
@echo off
setlocal EnableDelayedExpansion
echo. > test2.txt
for /f "tokens=*" %%a in ('type test.txt') do (
if "%%a"=="Update=Yes" (
@echo Update=No >> test2.txt
) else if "%%a"=="Update=No" (
@echo Update=Yes >> test2.txt
) else if "%%a"=="" (
rem Questions TWO
rem print a blank line doesn't work
@echo. >> test2.txt
) else (
set tmpvar=%%a
set str=!tmpvar:%%=%%%%!
echo !str! >> test2.txt
)
)
start test2.txt
La sortie est test2.txt (Note No Line Blank dans Bonjour tout le monde)
Hello World
The filename is : filename with spaces and 50%% percentages signs.txt
The %%~nf removes extenstions
Is there something to double a %% charactor?
As I would like 50%% to be outputed as 50%%%%
because the output of this batch is to create input for another batch.
Problème deux: Comment puis-je vérifier si %% a est une ligne vide?
Cela fonctionne mais nécessiterait 400 lignes; Y at-il un moyen de le faire en utilisant un For LOOP?
@echo off
set STR2=ON%%E
echo This is STR2 %STR2%
IF "%STR2:~0,1%"=="%%" (set STR3=%STR3%%%%%) else set STR3=%STR3%%STR2:~0,1%
IF "%STR2:~1,1%"=="%%" (set STR3=%STR3%%%%%) else set STR3=%STR3%%STR2:~1,1%
IF "%STR2:~2,1%"=="%%" (set STR3=%STR3%%%%%) else set STR3=%STR3%%STR2:~2,1%
IF "%STR2:~3,1%"=="%%" (set STR3=%STR3%%%%%) else set STR3=%STR3%%STR2:~3,1%
echo This is STR3 %STR3%
pause
Pouvez-vous mettre à jour votre question avec un échantillon de votre fichier source et ce que vous obtenez maintenant? –
Ajouter une ligne après @echo off qui indique "SETLOCAL ENABLEDELAYEDEXPANSION" (sans les guillemets). –
Je suis assez sûr que XP a cela. Vous pouvez vous assurer en tapant "cmd /?" (sans les guillemets) sur la ligne de commande. L'aide devrait mentionner l'expansion retardée. –