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

CP1717 - Dec 9, 2008 at 02:59 PM - Latest reply: Richard.Williams 25 Posts Saturday November 7, 2009Registration date July 18, 2012 Last seen
- Dec 30, 2009 at 12:12 PM
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!!!
See more 

8 replies

Best answer
Swarve 4 Posts Monday December 8, 2008Registration date December 10, 2008 Last seen - Dec 9, 2008 at 05:37 PM
4
Thank you
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)

Thank you, Swarve 4

Something to say? Add comment

CCM has helped 1806 users this month

Wow!

Thanks so much! I can figure it out from here. You are my hero!
Swarve 4 Posts Monday December 8, 2008Registration date December 10, 2008 Last seen > CP1717 - Dec 9, 2008 at 05:55 PM
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
http://www.microsoft.com/technet/scriptcenter/guide/sas_scr_qdsc.mspx?mfr=true

Cheers,

Swarve
00666111384 1 Posts Monday February 23, 2009Registration date February 24, 2009 Last seen - Feb 24, 2009 at 02:58 AM
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.
2
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!!!
Richard.Williams 25 Posts Saturday November 7, 2009Registration date July 18, 2012 Last seen - Dec 30, 2009 at 12:12 PM
1
Thank you
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.
Swarve 4 Posts Monday December 8, 2008Registration date December 10, 2008 Last seen - Dec 9, 2008 at 06:00 PM
0
Thank you
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