Я бы использовал эту функцию для скорости:
def check_string(string, substring_list):
for substring in substring_list:
if substring in string:
return True
return False
При условии, что разделитель также не присутствует в строках в кавычках, следующий скрипт PowerShell
проверяет каждую строку в файле и использует Measure-Object
для поддержания -Sum, -Average -Min -Макс и -Счетчик разделителей.
> Get-Content .\test.csv| ForEach-Object{( При условии, что разделитель также не присутствует в строках в кавычках, следующий скрипт PowerShell
проверяет каждую строку в файле и использует Measure-Object
для поддержания -Sum, -Average -Min -Макс и -Счетчик разделителей.
[110] Если «Среднее», «Макс» и «Мин» равны, все строки имеют одинаковое количество столбцов.
Чтобы быть в теме, завернутый в пакетный файл:
:: Q:\Test\2019\03\19\SO_55231094.cmd
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
set "inputFile=.\test.csv"
:: clear var with prefix _
for /f "delims==" %%A in ('set _ 2^>nul') do set "%%A="
for /f "usebackq tokens=1,2 delims=: " %%A in (`
powershell -nop -c "(Get-Content $ENV:inputFile)|ForEach-Object{( При условии, что разделитель также не присутствует в строках в кавычках, следующий скрипт PowerShell
проверяет каждую строку в файле и использует Measure-Object
для поддержания -Sum, -Average -Min -Макс и -Счетчик разделителей.
[110] Если «Среднее», «Макс» и «Мин» равны, все строки имеют одинаковое количество столбцов.
Чтобы быть в теме, завернутый в пакетный файл:
[111] Пример вывода
> Q:\Test\2019\03\19\SO_55231094.cmd
_Average=8
_Count=3
_Maximum=8
_Minimum=8
_Sum=24
-split '~').Count}|Measure-Object -Sum -Average -Minimum -Maximum"
`) do if "%%B" neq "" Set "_%%A=%%B"
Set _
Пример вывода
> Q:\Test\2019\03\19\SO_55231094.cmd
_Average=8
_Count=3
_Maximum=8
_Minimum=8
_Sum=24
-split '~').Count}|Measure-Object -Sum -Average -Minimum -Maximum
Count : 3
Average : 8
Sum : 24
Maximum : 8
Minimum : 8
Property :
Если «Среднее», «Макс» и «Мин» равны, все строки имеют одинаковое количество столбцов.
Чтобы быть в теме, завернутый в пакетный файл:
:: Q:\Test\2019\03\19\SO_55231094.cmd
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
set "inputFile=.\test.csv"
:: clear var with prefix _
for /f "delims==" %%A in ('set _ 2^>nul') do set "%%A="
for /f "usebackq tokens=1,2 delims=: " %%A in (`
powershell -nop -c "(Get-Content $ENV:inputFile)|ForEach-Object{( При условии, что разделитель также не присутствует в строках в кавычках, следующий скрипт PowerShell
проверяет каждую строку в файле и использует Measure-Object
для поддержания -Sum, -Average -Min -Макс и -Счетчик разделителей.
[110] Если «Среднее», «Макс» и «Мин» равны, все строки имеют одинаковое количество столбцов.
Чтобы быть в теме, завернутый в пакетный файл:
[111] Пример вывода
> Q:\Test\2019\03\19\SO_55231094.cmd
_Average=8
_Count=3
_Maximum=8
_Minimum=8
_Sum=24
-split '~').Count}|Measure-Object -Sum -Average -Minimum -Maximum"
`) do if "%%B" neq "" Set "_%%A=%%B"
Set _
Пример вывода
> Q:\Test\2019\03\19\SO_55231094.cmd
_Average=8
_Count=3
_Maximum=8
_Minimum=8
_Sum=24
Это достаточно просто с PowerShell. Код сравнивает длину исходной строки со строкой с удаленными символами TILDE.
Это можно запустить на любой современной машине с Windows, поддерживаемой cmd.exe. Да, намного проще и чище, если он написан как скрипт PowerShell.
@ECHO OFF
SET "inputFile=.\countds.csv"
powershell -NoLogo -NoProfile -Command ^
"Get-Content -Path '%inputFile%' |" ^
"ForEach-Object {" ^
"$ns = Это достаточно просто с PowerShell. Код сравнивает длину исходной строки со строкой с удаленными символами TILDE.
Это можно запустить на любой современной машине с Windows, поддерживаемой cmd.exe. Да, намного проще и чище, если он написан как скрипт PowerShell.
[110] -replace '~','';" ^
"if (( Это достаточно просто с PowerShell. Код сравнивает длину исходной строки со строкой с удаленными символами TILDE.
Это можно запустить на любой современной машине с Windows, поддерживаемой cmd.exe. Да, намного проще и чище, если он написан как скрипт PowerShell.
[110].Length - $ns.Length) -ne 7) {" ^
"'Length is {0}' -f ( Это достаточно просто с PowerShell. Код сравнивает длину исходной строки со строкой с удаленными символами TILDE.
Это можно запустить на любой современной машине с Windows, поддерживаемой cmd.exe. Да, намного проще и чище, если он написан как скрипт PowerShell.
[110].Length - $ns.Length)" ^
"}" ^
"}"