Permalänk

.bat programmeringshjälp

Ursäkta om det är fel ställe att ställa frågan isåfall ber jag moderator flytta tråden

hej jag håller på att programmera lite och har fastnat på en sak.

min code:

echo @echo off > Folder.txt
echo cd C:\Users\%Username%\Desktop >> Folder.txt
echo :start >> Folder.txt
echo md %random% >> Folder.txt
echo goto :start >> Folder.txt

som ni märker så skapar det en txt fil som det står lite i.

Problem: om jag kollar i .txt filen så står där "md 4562" och inte "md %random%"

HUr fixar jag så det står %random% i .txt filen och inte siffror?

Permalänk
Medlem

Använd dubbla procent för att "escapa" procenten.

Visa signatur

Spela Swemantle! Du vet att du vill.

Ibland har jag fel, men då är det någon annans fel.

Permalänk
Medlem

Du måste använda escape, dubbla % funkar dock inte för det är ett unik fall (iaf inte alltid) utan du måste göra specialaren av att göra

echo md %random^%

så får du output

md %random%

i filen

Visa signatur

"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood

Permalänk
Skrivet av Ferrat:

Du måste använda escape, dubbla % funkar dock inte för det är ett unik fall (iaf inte alltid) utan du måste göra specialaren av att göra

echo md %random^%

så får du output

md %random%

i filen

om jag gjorde coden så här:

echo @echo off > Folder.txt echo cd C:\Users\%Username%\Desktop >> Folder.txt echo :start >> Folder.txt echo md %random^% >> Folder.txt echo goto :start >> Folder.txt

så blev resultatet:

@echo off cd C:\Users\Erik\Desktop :start md goto :start

var står det %random%???

Permalänk
Medlem
Skrivet av erikpetersen97:

om jag gjorde coden så här:

echo @echo off > Folder.txt echo cd C:\Users\%Username%\Desktop >> Folder.txt echo :start >> Folder.txt echo md %random^% >> Folder.txt echo goto :start >> Folder.txt

så blev resultatet:

@echo off cd C:\Users\Erik\Desktop :start md goto :start

var står det %random%???

Hmm okej får du samma när du skriver echo md %random^% i kommandotolken?

Visa signatur

"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood

Permalänk
Medlem

Har du windows 7 eller 8? kanske är någon tolkningsskillnad mellan dem

Visa signatur

"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood

Permalänk
Skrivet av Ferrat:

Hmm okej får du samma när du skriver echo md %random^% i kommandotolken?

Nej då står det

md %random%

men jag vill ju ha det så det skrivs ut i ett txt fil......

Permalänk
Medlem

Jo det förstår jag, det du ser i echo borde vara exakt det som hamnar i filen, testa och se om det gör skillnad om du skriver

echo md %^random%

då?

Alltså jag utgår från att du lägger till >> Folder.txt
efter?

edit: utgår btw från att detta enbart är i syfte att lära dig själv då du vet att om du kör det script du skapar på en dator du inte får så är det skadegörelse.

Visa signatur

"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood

Permalänk
Skrivet av Ferrat:

Jo det förstår jag, det du ser i echo borde vara exakt det som hamnar i filen, testa och se om det gör skillnad om du skriver

echo md %^random%

då?

Alltså jag utgår från att du lägger till >> Folder.txt
efter?

Samma resultat som innan

Permalänk
Skrivet av Ferrat:

Jo det förstår jag, det du ser i echo borde vara exakt det som hamnar i filen, testa och se om det gör skillnad om du skriver

echo md %^random%

då?

Alltså jag utgår från att du lägger till >> Folder.txt
efter?

edit: utgår btw från att detta enbart är i syfte att lära dig själv då du vet att om du kör det script du skapar på en dator du inte får så är det skadegörelse.

jag har hittat en konstig sak nu.....

om jag skriver:

echo md %^random% > fil.txt

förhand i kommandotolken så får jag en fil där det står:

md %random%

Men jag programmerar ju så jag skriver allt till ett program i notepad och där skriver jag

echo md %^random% > fil.txt

Men får bara fram då

md

Permalänk
Medlem

Okej då är det någon inställning hos dig för
echo @echo off > Folder.txt
echo cd C:\Users\%Username%\Desktop >> Folder.txt
echo :start >> Folder.txt
echo md %random^% >> Folder.txt
echo goto :start >> Folder.txt

fungerar för mig utan problem med output

@echo off
cd C:\Users\Artimus\Desktop
:start
md %random%
goto :start

EDIT:
ska se om det är samma, kan vara bat tolkningen som stoppar det

Visa signatur

"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood

Permalänk
Medlem

Jupp det är tolkningen av .bat filer som skiljer sig från kommando tolken, det är %% som gäller där fastän det inte funkar i tolken.

Visa signatur

"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood

Permalänk
Skrivet av Ferrat:

Okej då är det någon inställning hos dig för
echo @echo off > Folder.txt
echo cd C:\Users\%Username%\Desktop >> Folder.txt
echo :start >> Folder.txt
echo md %random^% >> Folder.txt
echo goto :start >> Folder.txt

fungerar för mig utan problem med output

@echo off
cd C:\Users\Artimus\Desktop
:start
md %random%
goto :start

EDIT:
ska se om det är samma, kan vara bat tolkningen som stoppar det

Jag textade att kopiera din code och körde den men får fortfarande bara:

@echo off
cd C:\Users\Erik\Desktop
:start
md
goto :start

Permalänk
Skrivet av Ferrat:

Jupp det är tolkningen av .bat filer som skiljer sig från kommando tolken, det är %% som gäller där fastän det inte funkar i tolken.

Kan man fixa det eller?

Permalänk
Medlem
Skrivet av erikpetersen97:

Kan man fixa det eller?

Fixa? Du skriver helt enkelt %%random%% i bat-filen för att få %random% utmatat.

Permalänk
Medlem
Skrivet av erikpetersen97:

Kan man fixa det eller?

Som jag svarade först:

echo @echo off > Folder.txt echo cd C:\Users\%Username%\Desktop >> Folder.txt echo :start >> Folder.txt echo md %%random%% >> Folder.txt echo goto :start >> Folder.txt

Visa signatur

Spela Swemantle! Du vet att du vill.

Ibland har jag fel, men då är det någon annans fel.

Permalänk
Skrivet av LemonIllusion:

Som jag svarade först:

echo @echo off > Folder.txt echo cd C:\Users\%Username%\Desktop >> Folder.txt echo :start >> Folder.txt echo md %%random%% >> Folder.txt echo goto :start >> Folder.txt

Tack Allihopa

Permalänk

Du borde överge bat-script och kolla på powershell istället.