一部の CSV ファイルを UTF-8 にエンコードし、そのファイルを SQLite データベースにインポートするバット ファイルがあります。これは私が持っているコードです:
echo Codificando ficheros...
powershell -Command "&{ param($Path); (Get-Content $Path) | Out-File $Path -Encoding UTF8 }" CSVs\\prefijo.csv
powershell -Command "&{ param($Path); (Get-Content $Path) | Out-File $Path -Encoding UTF8 }" CSVs\\materiales.csv
powershell -Command "&{ param($Path); (Get-Content $Path) | Out-File $Path -Encoding UTF8 }" CSVs\\zonas.csv
powershell -Command "&{ param($Path); (Get-Content $Path) | Out-File $Path -Encoding UTF8 }" CSVs\\responsables.csv
powershell -Command "&{ param($Path); (Get-Content $Path) | Out-File $Path -Encoding UTF8 }" CSVs\\lideres.csv
powershell -Command "&{ param($Path); (Get-Content $Path) | Out-File $Path -Encoding UTF8 }" CSVs\\pass.csv
powershell -Command "&{ param($Path); (Get-Content $Path) | Out-File $Path -Encoding UTF8 }" CSVs\\capacidadLotes.csv
powershell -Command "&{ param($Path); (Get-Content $Path) | Out-File $Path -Encoding UTF8 }" CSVs\\boletosIndirectos.csv
@echo OFF
echo Generando fichero de base de datos _datosPrecargados.db...
.\sqlite3.exe BaseDatos\_datosPrecargados.db < Sentencias_sql\Sentencias_DatosPrecargados.sql
@echo OFF
echo Generando fichero de base de datos _inventario.db...
.\sqlite3.exe BaseDatos\_inventario.db < Sentencias_sql\Sentencias_Inventario.sql
pause
ファイルをエンコードするように PowerShell 行を設定する前は、問題なく動作していました。しかし、エンコードする前に問題があります。データベースは問題ないようですが、最初のレコードの最初の列を探して選択文を実行すると、見つかりません。
EG テーブル「ゾーン」:
zone name
---- ----
Z001 Zone 1
Z002 Zone 2
Z002 Zone 3
文を実行すると、"SELECT * FROM zones"
すべてのレコードが一覧表示されます。
文を実行する"SELECT * FROM zones WHERE zone="Z002""
と、レコードがリストされます。
しかし、文を実行する"SELECT * FROM zones WHERE zone="Z001""
と、レコードが見つかりません。
Bat ファイルに PowerShell の行を設定しないと、問題は発生せず、正常に動作しますが、CSV ファイル内に「ñ」や「ó」などの特殊文字があるため、ファイルをエンコードする必要があります。
何が間違っているのかわかりません。
前もって感謝します!!