Computer Hope
Microsoft => Microsoft DOS => Topic started by: dakota on June 26, 2006, 10:33:57 AM
-
when i do this line and i echo the %%a it show all of the itomes but when it is set to a var it only does the first line
this is the line
for /f "tokens=1 delims= " %%a in ('dir /AD ^| findstr /R /V "\.\>" ^| find /c "<DIR>"') do set dirs=%%a
echo %dirs%
pause
for /f "skip=%dirs%" %%a in ('dir /b /o:g') do echo %%a
echo %list%
-
any help :-? :-? :-? :-?
-
please help
-
when you do the set var = %%a , you should do something with it.
-
what do you mean i set the list to a var and when i echo it it only gets the first line so my line looks like this
for /f "skip=%dirs%" %%a in ('dir /b /o:g') do echo %%a & set list=%%a
-
and i use the list var latter
-
You have to use a sub - procedure.
for /f "skip=%dirs%" %%a in ('dir /b /o:g') do call :sub %%a
set dirs=
goto :eof
:sub %%a
set dirs=%1
pause
for /f "skip=%dirs%" %%a in ('dir /b /o:g') do echo %%a
echo %list%
hope it helps
uli
-
ok think you but i still cant get it to work here is all of my code:
@echo off
:start
::================================================
set fup=fup
set pur=purge
set alt=altpr
set sec=secure
set cod=,code 100
set ccc=,"cccc"
set Infile=temp.dak
set Outfile=purge.jim
::================================================
for /f "tokens=1 delims= " %%a in ('dir /AD ^| findstr /R /V "\.\>" ^| find /c "<DIR>"') do set dirs=%%a
echo %dirs%
pause
::for /f "skip=%dirs%" %%a in ('dir /b /o:g') do echo %fup% %pur% %%a >testttt.txt& set list=%%a
for /f "skip=%dirs%" %%a in ('dir /b /o:g') do call :sub %%a
set dirs=
goto :eof
:sub %%a
set dirs=%1
for /f "skip=%dirs%" %%a in ('dir /b /o:g') do echo %%a
echo %list%
pause
::for /f "delims=" %%a in ("%list%") do echo %fup% %pur% %%a>>%Outfile%
::echo.>>%Outfile%
::for /f "delims=" %%a in ("%list%") do echo %fup% %alt% %%a %cod%>>%Outfile%
::echo.>>%Outfile%
::for /f "delims=" %%a in ("%list%") do echo %fup% %sec% %%a %ccc%>>%Outfile%
::echo.>>%Outfile%
::pause
-
anyone
-
What are you trying to accomplish? Let me know and I will be glad to help.
-
I am trying to get a list of all the files in a directory and output them to a file but I want this list to be in the bare formate and have no folders included in it just the files. :P ::) ;D ;D Think you
-
@echo off
for /F %%i in ('dir /A-D /S /B') do (
echo %%~ni >> output.txt
)
-
So you don`t need to set it in a variable.
Ghostdogs solution seems perfect. :-)
-
nope that dose not work i need it not to display directorys but all of the files and i would like to have it in a var because i will use the var later when i am adding things to it the it will go to the output file.
-
After reading this post, I'm guessing you want one variable to hold all the file names as if it were a collection. You can accomplish this by concatenating the files/dir names out of the FOR:
call set list=%list%%%a
Unfortunately, the result will be one long string. Unless you're running MS-DOS as your operating system and have access to the ANSI.SYS driver, there is no way to insert CRLF (carriage return/linefeed) characters between the file names in batch language.
Try using one of the Windows scripting languages where you have access to functions to represent the CRLF characters.
8-)
-
i could have it go only to a file and have my batch file use that file and then out put to a new file and delete the temp file with the file list in it.
-
any help because when i have it go out to a file it goes out as only the first line.
-
Post your code so we can help you troubleshoot the problem.
-
@echo off
:start
::================================================
set fup=fup
set pur=purge
set alt=altpr
set sec=secure
set cod=,code 100
set ccc=,"cccc"
set Infile=temp.dak
set Outfile=purge.jim
::================================================
for /f "tokens=1 delims= " %%a in ('dir /AD ^| findstr /R /V "\.\>" ^| find /c "<DIR>"') do set dirs=%%a
echo %dirs%
pause
::for /f "skip=%dirs%" %%a in ('dir /b /o:g') do echo %fup% %pur% %%a >testttt.txt& set list=%%a
for /f "skip=%dirs%" %%a in ('dir /b /o:g') do call :sub %%a
set dirs=
goto :eof
:sub %%a
set dirs=%1
for /f "skip=%dirs%" %%a in ('dir /b /o:g') do echo %%a
echo %list%
pause
::for /f "delims=" %%a in ("%list%") do echo %fup% %pur% %%a>>%Outfile%
::echo.>>%Outfile%
::for /f "delims=" %%a in ("%list%") do echo %fup% %alt% %%a %cod%>>%Outfile%
::echo.>>%Outfile%
::for /f "delims=" %%a in ("%list%") do echo %fup% %sec% %%a %ccc%>>%Outfile%
::echo.>>%Outfile%
::pause
-
the part at the bottom with all of the for loops is for the part wher i add things onto the file or var ;D ;D
-
And what i am trying to do with this is get a list of all the files in a derectory (the one the batch file is in) and have only the files and no directories incluted and it needs to be in the bare format.
-
I don't see anything that outputs to a file that is not commented out. What is the problem with the script? What is it doing, and what do you want it to do?
-
Is there a reason you don't use the command:
dir /b /a-d
Or to save it to a file, use:
dir /b /a-d >testtt.txt
Or if you want the list in a semi-colon separated environment variable, use:
@echo off
set FileList=
for /f "delims=" %%a in ('dir /b /a-d') do call :AppendList %%a
echo FileList is: %FileList%
goto :EOF
:AppendList
set FileList=%FileList%;%1
goto :EOF
-
For the "save to a file" method and then list them it would be like:
@echo off
dir /b /a-d >testtt.txt
echo List of files is:
type testtt.txt
-
Ok i gust want to start freash. Could you make me a script that will get a list off all the files in a directory (not include the dirs) in bear format an output them to a file please.
-
looks like i posted late lol
-
OMG are you serus it is that easy i could never figer out what the - was for (prefix meaning not?????????) <--still dont get what that means but think you.
-
OMG are you serus it is that easy i could never figer out what the - was for (prefix meaning not?????????) <--still dont get what that means but think you.
i suppose you are taking about dir /a-d ? check out dir /? .. it explains...
/A Displays files with specified attributes.
attributes D Directories R Read-only files
H Hidden files A Files ready for archiving
S System files - Prefix meaning not
"-" meaning not... so /a-d means display files, not directories...
-
think you so much i have been working on this 4ever i cant beleav that all i needed was a simple - lol ok think you very very much.