Batch file to output filename to csv file [Solved/Closed]

Report
-
Posts
25
Registration date
Saturday November 7, 2009
Status
Member
Last seen
July 18, 2012
-
Hello,

I'm looking to write a windows batch file that will look for a fixed file in a fixed folder (ie c:\folder\file1.csv) and use the dir command to output the filename and last written date to a second csv file (ie c:\folder\file2.csv). The output must be in two columns and will look something like this when you open file2.csv:

file1.csv 10/14/2008 15:38


This seems like a fairly straightforward batch, but i'm struggling to limit my output to just these two attributes and place them in the first two columns and first row of file2.csv

Any help would be greatly appreciated. Thanks!!!

4 replies

Posts
4
Registration date
Monday December 8, 2008
Status
Member
Last seen
December 10, 2008
4
Hi CP1717,

The script you need is as follows:

____________________Begin Code__________________


Dim Filepath
Dim Filename
Dim OutputFile

Filepath = "c:\test\" 'Edit this to specify the filepath
Filename = "file1.csv" 'Name of file that last edited date/time is needed
OutputFile = "file2.csv" 'File to output results to

Set objFSO = CreateObject("Scripting.FileSystemObject")
If not objFSO.FileExists(FilePath & OutputFile) then
Set objFile = objFSO.CreateTextFile(Filepath & OutputFile)
Wscript.sleep(2000) 'Pause while file is being created
End If


If objFSO.FileExists(Filepath & Filename) then
Set objFile = objFSO.GetFile(Filepath & Filename)
Lastmodifieddate = objFile.DateLastModified

Const ForWriting = 2
Set outputFile = objFSO.OpenTextFile(Filepath & "file2.csv", ForWriting) ' Open file for writing
OutputFile.Write Filename & "," & objFile.DateLastModified 'Write filename and last modified date to output file
OutputFile.Close
End If
set objFSO = Nothing


____________________End Code__________________


The three variables, filepath, filename and output file that are set up on lines 5, 6 and 7 can be modified to pick up any path and filename that you specify and will create the file on line 7 on the same path.

If you save that code as test.vbs file, then in your batch file, you will need to enter the line "Call test.vbs". Obviously if you change the name of the vbs file, you will need to change the reference to it in your batch file.

Bandy (now known as Swarve since I've joined)
4
Thank you

A few words of thanks would be greatly appreciated. Add comment

CCM 2942 users have said thank you to us this month

Wow!

Thanks so much! I can figure it out from here. You are my hero!
Posts
4
Registration date
Monday December 8, 2008
Status
Member
Last seen
December 10, 2008
4 > CP1717
No problem at all, if you get any issues, let me know.

If you want to find out more about vb scripting, here are a couple of good starting points:

http://www.w3schools.com/Vbscript/default.asp
https://docs.microsoft.com/en-us/?mfr=true

Cheers,

Swarve
Posts
1
Registration date
Monday February 23, 2009
Status
Member
Last seen
February 24, 2009

Hi,

How can make a vbs file is it the same as creating a batch file? I wanna know how to make my html file change it extension name to .txt files with date included.

example:

ren *.html -> 02-20-2009 *.txt


Please and Thank you.
Hi CP1717,

Does the script have to be in a batch file? You might be better off using a vbs file to get the properties of the file1.csv and output them to file2.csv.

If you need the vbs script written, I should be able to come up with it for you. You can always call this script from within a batch file so it won't detract from any other scripts you already have written.
Hi,

I suppose it could be a VBS script with a batch file that kicks off that script. I have never written a VBS script before though...

for the purposes of an example script, can we use the same sample names from above? i'm really clueless about VBS, but if I just need to kick it off within a batch file i'm ok on that. THanks so much for your help!!!
Posts
25
Registration date
Saturday November 7, 2009
Status
Member
Last seen
July 18, 2012
14
Excellent vbscripts so far. Here are some possible alternatives.

CP1717 said,


> I'm looking to write a windows batch file that will look for a fixed file in a
> fixed folder (ie c:\folder\file1.csv) and use the dir command to output the filename
> and last written date to a second csv file (ie c:\folder\file2.csv).
> The output must be in two columns</code>



Probably will need only one biterscripting command.


echo "c:/folder/file1.csv" "," { af -m "c:/folder/file1.csv" } >> "c:/folder/file2.csv"



The af command is for "access file attributes". Use forward slashes in path. Also I recommend using a TSV (Tab separated values) instead of CSV. What if the file name contains a comma ?




00666111384 asked,


> How can make a vbs file is it the same as creating a batch file?
> I wanna know how to make my html file change it extension name to .txt
> files with date included.
>
> example:
>
> ren *.html -> 02-20-2009 *.txt



One command again.


system rename ("\""+"c:/folder/xyz.html"+"\"") ("\""+{ af -m "c:/folder/xyz.html" }+"xyz.txt"+"\"")





You can also do this for all files in a loop with the biter script below.


var str list, file, newname
lf -n "*.html" "C:/folder" > $list
while ($list <> "")
do
    lex "1" $list > $file
    stex -p "^/^l[" $file > $newname ; stex "[^.^l" $newname > null
    set $newname = { ad -m $file }+$newname+".txt"
    system rename ("\""+$file+"\"") ("\""+$newname+"\"")
done


All biter scripts you can call from batch.
Posts
4
Registration date
Monday December 8, 2008
Status
Member
Last seen
December 10, 2008
4
Oops, I just noticed something that I should have changed when I set up the second filename as a variable.

On line 21 (Set outputFile = objFSO.OpenTextFile(Filepath & "file2.csv", ForWriting) ' Open file for writing)

The text :
& "file2.csv",

should be changed to:
& Outputfile,

I was a little overzealous in testing it then posting unfortunately.

Cheers, Swarve

Subscribe To Our Newsletter!

The Best of CCM in Your Inbox

Subscribe To Our Newsletter!