archivo es:PowerShell: cómo evaluar una cadena leer desde un archivo
eliminar de test_ $ sufijo
$ a = Get-Content a.txt
$ sufijo = "tablaA"
cómo manipular la variable para establecerlo como
delete from test_tableA
archivo es:PowerShell: cómo evaluar una cadena leer desde un archivo
eliminar de test_ $ sufijo
$ a = Get-Content a.txt
$ sufijo = "tablaA"
cómo manipular la variable para establecerlo como
delete from test_tableA
$a=get-content a.txt
$suffix="tableA"
$ExecutionContext.InvokeCommand.ExpandString($a)
Aquí hay una manera. Las variables en una secuencia aquí doble son reemplazadas automáticamente. Solo asegúrese de que su archivo de entrada cumpla con las reglas de PS para este tipo de cadenas.
function convertto-herestring {
begin {$temp_h_string = '@"' + "`n"}
process {$temp_h_string += $_ + "`n"}
end {
$temp_h_string += '"@'
iex $temp_h_string
}
}
$suffix = "tableA"
get-content testfile.txt
delete from test_$suffix
get-content testfile.txt | convertto-herestring
delete from test_tableA
Invoke-Expresión es el equivalente.
$strExpression = "5 + 5 -eq 10"
Invoke-Expression $strExpression
True
Ver http://technet.microsoft.com/en-us/library/ee176880.aspx para más información.
Tenga en cuenta que si $ a contiene una cadena entrecomillada (por ejemplo, $ a = 'eliminar de' test_ $ sufijo '') perderá sus comillas cuando se expanda. – mjolinor
Eso es verdad. Lo mismo vale para $ signos. Puedes escapar de ellos con un tic '. Además, la técnica de cadena aquí solo permite líneas de PowerShell reconocible. No puedo tener 'Esto es texto' en el archivo (sin las comillas). Habilitar eso es útil al hacer aplicaciones de tipo de plantilla. –
No entiendo esta parte: "Además, la técnica de cadena aquí solo permite líneas de PowerShell reconocible. No puedo tener 'Esto es texto' en el archivo (sin las comillas). Habilitar eso es útil al hacer aplicaciones de tipo de plantilla. " http://mjolinor.wordpress.com/2011/02/02/here-string-test/ – mjolinor