Javascript - output csv file

Hi there,

I need a Javascript that will be called from a batch file and output the content of a csv file; but only the requested columns defined by an argument; it the order defined in the argument.

I need to define the output columns defined as an argument in the command line because the needed columns will change.

Examples:

"dataToRead.csv" CONTENT:
serial,content,url,date,nb,city,where
12,"wine, cheese",http://www.website.com/posting.do?page=138&d=50&fet=2,2016-11-20,6545565,Montréal,sky

COMMAND LINE:
cscript exportcsv.js "dataToRead.csv" "C:\Data\dataOutput.csv" "1,2,6"
EXPECTED OUTPUT to "C:\Data\dataOutput.csv":
"12","wine, cheese","Montréal"

COMMAND LINE:
cscript exportcsv.js "dataToRead.csv" "C:\Data\dataOutput.csv" "1,2,6,7"
EXPECTED OUTPUT to "C:\Data\dataOutput.csv":
"12","wine, cheese","Montréal",sky

COMMAND LINE:
cscript exportcsv.js "dataToRead.csv" "C:\Data\dataOutput.csv" "4,3"
EXPECTED OUTPUT to "C:\Data\dataOutput.csv":
"2016-11-20","http://www.website.com/posting.do?page=138&d=50&fet=2"

Thanks for your help,
Rene
LVL 10
ReneGeAsked:
Who is Participating?
 
leakim971Connect With a Mentor PluritechnicianCommented:
You may us Powershell :
$columns = 'serial','content','city'
Import-Csv 'dataToRead.csv' | Select $columns | Export-Csv -Path 'result.csv' –NoTypeInformation

Open in new window

https://msdn.microsoft.com/en-us/powershell/scripting/setup/starting-windows-powershell

PowerShell.exe -Command script.ps1
0
 
leakim971PluritechnicianCommented:
why javascript ? what is your OS ?
0
 
ReneGeAuthor Commented:
Because i need to run it from a Windows batch file.
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
leakim971PluritechnicianCommented:
and your OS is ?
0
 
ReneGeAuthor Commented:
Windows 8.1 Pro
0
 
ReneGeAuthor Commented:
Thanks for your solution.
By right clicking on it then clicking on "Run with PowerShell" it works.

1) I'm unable to run it from a batch file:
Command line: PowerShell.exe -Command OutputCSV.ps1
Error message: OutputCSV.ps1 : The term 'OutputCSV.ps1' is not recognized as the name of a cmdlet, function, script file, or operable program.
2) Is there a way to exclude data rows when a field is empty?  For example, in 'serial','content','city', if 'city' is empty, do not output this data row.

Thanks and cheers,
Rene

:)
0
 
leakim971PluritechnicianCommented:
in your batch, set path before running the command else it don't find the ps1
0
 
leakim971PluritechnicianCommented:
for your second question, no
0
 
ReneGeAuthor Commented:
Its working :)
Is there a way I can output it in my batch file windows instrad to a file?  This way, I'll clean up its content in a FOR /F command.
0
 
ReneGeAuthor Commented:
The following works and is output to my shell window.  But i need it to be formatted as csv.
Import-Csv 'C:\BatchFiles\E.E\OutputCSV.csv' | Select $columns
0
 
leakim971PluritechnicianCommented:
aha you want your batch modify itself ?
forget it.
just use del command if needed...
you can do lot more on this with powershell, be sure to create any ne question on this zone
0
 
leakim971PluritechnicianCommented:
you omit the second part of the original commande, the export-csv part
0
 
ReneGeAuthor Commented:
No, that not what I meant

Forget about the batch file.  How can I output "Import-Csv 'C:\BatchFiles\E.E\OutputCSV.csv' | Select $columns" in the shell window and in csv format?

Cheers mate :)
0
 
ReneGeAuthor Commented:
Import-Csv 'C:\BatchFiles\E.E\OutputCSV.csv' | Select $columns | Export-Csv

I get the following error message:
Export-Csv : You must specify either the -Path or -LiteralPath parameters, but not both.
0
 
leakim971PluritechnicianCommented:
Check my original post, scroll to the rigth, you miss this part
0
 
ReneGeAuthor Commented:
But your original post exports to a file, not the shell window!
Am I missing something?
0
 
ReneGeAuthor Commented:
Here is the final Powershell command line that works, by also expluding the rows where "city" is empty.
Import-Csv 'dataToRead.csv' | Select $columns | Where-Object {$_.city -ne ""} | Export-Csv -Encoding utf8 –NoTypeInformation -Path 'result.csv'

Thanks you sooo much for your help :)
1
 
leakim971PluritechnicianCommented:
great!
0
All Courses

From novice to tech pro — start learning today.