Novice Batch Issue- Creating Files

2020-05-02 16:47发布

问题:

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.

回答1:

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.