Commandline syntax to prevent wrapping in PowerShell output file? Commandline syntax to prevent wrapping in PowerShell output file? powershell powershell

Commandline syntax to prevent wrapping in PowerShell output file?


Try this (I can't test it)

& '\\fileServer\c$\PowerShell Scripts\herScript.ps1' | out-string -width 4096 | out-file c:\output.txt


Instead of using >, which is out-file, you can use set-content


Use the Write-Host cmdlet as the last statement of your pipeline. Normal unadorned powershell output appears to look at the dimensions of the parent console window, and trims/wraps output lines to width-1. The Write-Host cmdlet bypasses this step and writes directly to stdout without any further munging.

Here's an example, which reads a JSON file, and writes javascript output which adds the JSON to a big string (preserving comments):

powershell -Command "$input | ForEach-Object { \"manifestBlob += \"\"\" + ($_ -replace \"\"\"\", \"\\\"\"\") + \"\n\"\";\" } | Write-Host" < manifest.json > buildmanifest.js

Here's a sample input file:

//  File: manifest.json////  Description://      manifest for chrome plug-in{    "manifest_version": 2,    "version": "0.0.0",    // the ID is: sdfjkghsdfjkghjksdfghjkfhjkdfjff    "key": "sdfjkhsdfjkghjksdfghkjsdhgsdjkgfhjklsdfhgjklsdfhgjklsdhfgkljsdfhgkljsdhklgjsdhfjklghsdfjklghsdjklfghjksdfhgjksdhfgjklhsdfjkl",    "content_scripts": [ { "matches": ["http://*/*", "https://*/*"], "js": ["content.js"], "run_at": "document_start" } ],    // this is the standard LOCAL install location - but if this extension is published to the app-store, this value gets overridden (that is okay and even good)    "update_url": "file:///C:/Program%20Files/MyProduct/Update.xml",}

And the output when using Write-Host:

manifestBlob += "\n";manifestBlob += "//  File: manifest.json\n";manifestBlob += "//\n";manifestBlob += "//  Description:\n";manifestBlob += "//      manifest for chrome plug-in\n";manifestBlob += "\n";manifestBlob += "{\n";manifestBlob += "    \"manifest_version\": 2,\n";manifestBlob += "\n";manifestBlob += "    \"version\": \"0.0.0\",\n";manifestBlob += "\n";manifestBlob += "    // the ID is: sdfjkghsdfjkghjksdfghjkfhjkdfjff\n";manifestBlob += "    \"key\": \"sdfjkhsdfjkghjksdfghkjsdhgsdjkgfhjklsdfhgjklsdfhgjklsdhfgkljsdfhgkljsdhklgjsdhfjklghsdfjklghsdjklfghjksdfhgjksdhfgjklhsdfjkl\",\n";manifestBlob += "\n";manifestBlob += "    \"content_scripts\": [ { \"matches\": [\"http://*/*\", \"https://*/*\"], \"js\": [\"content.js\"], \"run_at\": \"document_start\" } ],\n";manifestBlob += "\n";manifestBlob += "    // this is the standard LOCAL install location - but if this extension is published to the app-store, this value gets overridden (that is okay and even good)\n";manifestBlob += "    \"update_url\": \"file:///C:/Program%20Files/MyProduct/Update.xml\",\n";manifestBlob += "}\n";

And finally, an example of the terrible things which happen if you leave out the Write-Host cmdlet (assuming a console width of 60):

manifestBlob += "\n";manifestBlob += "//  File: manifest.json\n";manifestBlob += "//\n";manifestBlob += "//  Description:\n";manifestBlob += "//      manifest for chrome plug-in\n";manifestBlob += "\n";manifestBlob += "{\n";manifestBlob += "    \"manifest_version\": 2,\n";manifestBlob += "\n";manifestBlob += "    \"version\": \"0.0.0\",\n";manifestBlob += "\n";manifestBlob += "    // the ID is: sdfjkghsdfjkghjksdfghjkfhjkdfjff\n";manifestBlob += "    \"key\": \"sdfjkhsdfjkghjksdfghkjsdhgsdjkgfhjklsdfhgjklsdfhgjklsdhfgkljsdfhgkljsdhklgjsdhfjklghsdfjklghsdjklfghjksdfhgjksdhfgjklhsdfjkl\",\n";manifestBlob += "\n";manifestBlob += "    \"content_scripts\": [ { \"matches\": [\"http://*/*\", \"https://*/*\"], \"js\": [\"content.js\"], \"run_at\": \"document_start\" } ],\n";manifestBlob += "\n";manifestBlob += "    // this is the standard LOCAL install location - but if this extension is published to the app-store, this value gets overridden (that is okay and even good)\n";manifestBlob += "    \"update_url\": \"file:///C:/Program%20Files/MyProduct/Update.xml\",\n";manifestBlob += "}\n";