【问题标题】:Calling GraphicsMagick command using T_SQL xp_cmdshell procedure使用 T_SQL xp_cmdshell 过程调用 GraphicsMagick 命令
【发布时间】:2015-09-01 11:03:37
【问题描述】:

我一直在尝试通过 T-SQL xp_cmdshell 过程调用 GraphicsMagick 命令,但同样出现错误。

我试图调用的命令如下: gm convert "\dklyefxdb1\X\Backup\apple_raw.jpg" -scale 200x250 "\dklyefxdb1\X\Backup\apple_raw_resize.jpg"

我正在执行的 SQL 代码如下:

Exec sp_configure 'xp_cmdshell', 1
Reconfigure
GO

exec xp_cmdshell 'gm convert "\\dklyefxdb1\X\Backup\apple_raw.jpg" -scale 200x250 "\\dklyefxdb1\X\Backup\apple_raw_resize.jpg"'
GO

执行此代码后出现以下错误:

'gm' 未被识别为内部或外部命令, 可运行的程序或批处理文件。

请注意,GraphicsMagick 安装在 SQL Server 所在的服务器上。

这里还有一点需要注意的是,如果我在服务器上通过cmd运行同样的命令,它运行成功。

任何帮助将不胜感激。

【问题讨论】:

    标签: sql tsql sql-server-2012 graphicsmagick xp-cmdshell


    【解决方案1】:

    添加 gm 的完整路径:

    exec xp_cmdshell 'C:\..\gm convert "\\dklyefxdb1\X\Backup\apple_raw.jpg" -scale 200x250 "\\dklyefxdb1\X\Backup\apple_raw_resize.jpg"'
    

    SET PATH环境变量

    【讨论】:

    • 现在它给我的错误如下:'C:\Program' 不是内部或外部命令、可运行程序或批处理文件。
    • @AnkurBatra 你是否添加了 gm.exe 的完整路径???我不知道它在您的文件系统中的哪个位置,这只是示例。
    • 我输入了完整路径:C:\Program Files (x86)\GraphicsMagick-1.3.21-Q8\gm
    • @AnkurBatra 添加额外的 '' 或 `\\`
    • @AnkurBatra 尝试移动到名称中没有空格的位置或在 cmd SET 中执行,看看它是否在对 gm 文件夹的 PATH 变量引用中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    相关资源
    最近更新 更多