#powershell #cmd
#powershell #cmd
Вопрос:
Я нашел действительно хороший код Powershell в другом сообщении здесь, в Stack Overflow. Это ниже; он загружает данные .csv в формате .xlsx. Это делает именно то, что я хочу. Возможно ли это сделать в CMD? Я искал это в эквиваленте CMD, но я продолжаю находить только версию powershell.
### Set input and output path
$inputCSV = "C:UsersusernameDesktopLSGTransactions.CSV"
$outputXLSX = "C:UsersusernameDesktopBook1.XLSX"
### Create a new Excel Workbook with one empty sheet
$excel = New-Object -ComObject excel.application
$workbook = $excel.Workbooks.Add(1)
$worksheet = $workbook.worksheets.Item(1)
### Build the QueryTables.Add command
### QueryTables does the same as when clicking "Data » From Text" in Excel
$TxtConnector = ("TEXT;" $inputCSV)
$Connector =
$worksheet.QueryTables.add($TxtConnector,$worksheet.Range("A1"))
$query = $worksheet.QueryTables.item($Connector.name)
### Set the delimiter (, or ;) according to your regional settings
$query.TextFileOtherDelimiter = $Excel.Application.International(5)
### Set the format to delimited and text for every column
### A trick to create an array of 2s is used with the preceding comma
$query.TextFileParseType = 1
$query.TextFileColumnDataTypes = ,2 * $worksheet.Cells.Columns.Count
$query.AdjustColumnWidth = 1
### Execute amp; delete the import query
$query.Refresh()
$query.Delete()
### Save amp; close the Workbook as XLSX. Change the output extension for Excel
2003
$Workbook.SaveAs($outputXLSX,51)
$excel.Quit()
Комментарии:
1. Если у вас уже есть то, что вам нужно, зачем это менять? Вы даже можете запустить скрипт Powershell из командного файла CMD …
2. О … это хорошая идея. Я знаю, что могу отправить CMD-код в то место, где этот код будет вызван; Я не был уверен, как впишется код Powershell. Я не думал о вызове одного из другого. Спасибо. Хотя было бы неплохо лучше изучить CMD.
Ответ №1:
Как правило, COM-объекты (которые Excel в powershell) недоступны в CMD
Однако обходным путем может быть вызов сценария powershell из командного файла и передача имен файлов в качестве параметров.
powershell.exe yourscript.ps1
Вам также может потребоваться установить политику исключения в вашей системе, чтобы включить запуск сценариев PS ( https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-6 )
Другим видом языка, поддерживающим COM, может быть vbscript, с которого вы можете запускать
cscript.exe script.vbs
Комментарии:
1. Чтобы избежать неожиданного вывода, может быть полезно использовать
powershell -NoLogo -NoProfile -File .yourscript.ps1
.2. то же самое с cscript //Nologo script.vbs