Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 84
  • Last Modified:

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
0
ReneGe
Asked:
ReneGe
  • 9
  • 9
1 Solution
 
leakim971PluritechnicianCommented:
why javascript ? what is your OS ?
0
 
ReneGeAuthor Commented:
Because i need to run it from a Windows batch file.
0
 
leakim971PluritechnicianCommented:
and your OS is ?
0
NEW Internet Security Report Now Available!

WatchGuard’s Threat Lab is a group of dedicated threat researchers committed to helping you stay ahead of the bad guys by providing in-depth analysis of the top security threats to your network.  Check out this quarters report on the threats that shook the industry in Q4 2017.

 
ReneGeAuthor Commented:
Windows 8.1 Pro
0
 
leakim971PluritechnicianCommented:
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
 
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Improved Protection from Phishing Attacks

WatchGuard DNSWatch reduces malware infections by detecting and blocking malicious DNS requests, improving your ability to protect employees from phishing attacks. Learn more about our newest service included in Total Security Suite today!

  • 9
  • 9
Tackle projects and never again get stuck behind a technical roadblock.
Join Now