我有一个 bat 文件,我将一些 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""
,记录就会列出来,ok。
但是如果我执行这句话"SELECT * FROM zones WHERE zone="Z001""
,就找不到记录。
如果我没有在 bat 文件中设置 PowerShell 行,它就不会发生并且工作正常,但我需要对文件进行编码,因为我在 CSV 文件中有特殊字符,如“ñ”或“ó”。
我不知道我做错了什么。
提前致谢!!