Хотя это несколько старый, я хотел бы добавить немного улучшенную версию, которая действительно изменяет порядок столбцов. Вот шаги (если у нас есть таблица TAB1 со столбцами COL1, COL2, COL3):
alter table TAB1 add (NEW_COL number);
создать таблицу tempTAB1 как select NEW_COL как COL0, COL1, COL2, COL3 из TAB1;
drop table TAB1;
переименовать tempTAB1 в TAB1;
Вот еще один способ без Invoke-Expression
, но с двумя переменными (команда: string & nbsp; and & nbsp; parameters: array). Он отлично работает для меня. Предположим, что 7z.exe
находится в системном пути.
$cmd = '7z.exe'
$prm = 'a', '-tzip', 'c:\temp\with space\test1.zip', 'C:\TEMP\with space\changelog'
& $cmd $prm
Если команда известна (7z.exe), и только параметры являются переменными, тогда это будет делать
$prm = 'a', '-tzip', 'c:\temp\with space\test1.zip', 'C:\TEMP\with space\changelog'
& 7z.exe $prm
BTW , Invoke-Expression
с одним параметром тоже работает для меня, например это работает
$cmd = '& 7z.exe a -tzip "c:\temp\with space\test2.zip" "C:\TEMP\with space\changelog"'
Invoke-Expression $cmd
P.S. Я обычно предпочитаю путь с помощью массива параметров, потому что его легче программировать, чем строить выражение для Invoke-Expression
.
Попробуйте вызвать вашу команду с помощью invoke-expression
.
invoke-expression $cmd1
Вот рабочий пример моей машины:
$cmd = "& 'C:\Program Files\7-zip\7z.exe' a -tzip c:\temp\test.zip c:\temp\test.txt"
invoke-expression $cmd
'C:\Program Files\7-zip\7z.exe'
, я мог бы выполнить 7z .Exe.
– kbrimington
29 August 2010 в 01:04