Novice Batch Issue- Creating Files
Asked Answered
M

1

0

I was working on developing a batch program that would scan various sections of a PC, and log them to a file. Surprisingly, I was unable to have the program create the file to write to. I then tried to create a file, that I was fairly certain would work; it is as followed:

@echo off
ipconfig > ip.txt
timeout 5

However, this was also unable to write to the file ip.txt. I also attempted the following program, with no success.

@echo off
echo Test > test.txt
timeout 3

If anyone would be able to give advice, I would much appreciate it.

No error messages are present, and clicking the link batch file

Issue Resolved, downgraded to Win7 from Win10 and no longer experiencing the issue. Not a great fix.

Mccurry answered 13/1, 2016 at 21:31 Comment(2)
Were any error messages generted? How did you check that the file was not generated? Are you executing these commands from the prompt or by clicking a link to the batch?Isopleth
Likely the file is created but not where you expect it; if you are double-clicking the batch file, I think the file is attempted to be created in C:\WINDOWS\System32, but might fail due to lack of write privileges...Lyall
S
0
ipconfig > %userprofile%\desktop\ip.txt

Use full paths. This specifies your desktop as the place to put the file.

See Set /? for help and type set to see standard variables.


&    seperates commands on a line.

&&    executes this command only if previous command's errorlevel is 0.

||    (not used above) executes this command only if previous command's =
errorlevel is NOT 0

>    output to a file

>>    append output to a file

<    input from a file

|    output of one command into the input of another command

^    escapes any of the above, including itself, if needed to be passed =
to a program

"    parameters with spaces must be enclosed in quotes

+ used with copy to concatinate files. E.G. copy file1+file2 newfile

, used with copy to indicate missing parameters. This updates the files =
modified date. E.G. copy /b file1,,

%variablename% a inbuilt or user set environmental variable

!variablename! a user set environmental variable expanded at execution =
time, turned with SelLocal EnableDelayedExpansion command

%<number> (%1) the nth command line parameter passed to a batch file. %0 =
is the batchfile's name.

%* (%*) the entire command line.

%<a letter> or %%<a letter> (%A or %%A) the variable in a for loop. =
Single % sign at command prompt and double % sign in a batch file.
Stonewort answered 13/1, 2016 at 21:52 Comment(2)
You should edit your question rather than my answer. %~dp0 is the batch file's path. See call /? for help.Stonewort
I didn't want to lose the additional question.Stonewort

© 2022 - 2024 — McMap. All rights reserved.