Bash'printf'等效于命令提示符?

我期待在Windows的命令提示符下将一些字符串输入传递给一个小型的C程序。 在bash中我可以使用

$ printf "AAAAAx86x08x04xed" | ./program

实质上,我需要在命令提示符下转义那些十六进制数字。

在命令提示符/ powershell中是否有与printf等效或类似的命令?

谢谢


在PowerShell中,你可以这样做:

"AAAAA{0}{1}{2}{3}" -f 0x86,0x08,0x04,0xed | ./program

我最近自己提出了同样的问题,并决定对于开发Windows的人来说,值得安装cygwin :)

否则,可以建立一个模拟printf功能的小型C程序:

#include <string.h>

int main(int argc, char *argv[])
{
    int i;
    char tmp[3];

    tmp[2] = '';

    if (argc > 1) {
        for (i = 2; i < strlen(argv[1]); i += 4) {
            strncpy(tmp, argv[1]+i, 2);
            printf("%c", (char)strtol(tmp, NULL, 16));
        }
    }
    else {
        printf("USAGE: printf.exe SHELLCODEn");
        return 1;
    }

    return 0;
}

该程序只处理“ xAB xCD”字符串,但如果需要的话,扩展它以处理“AAAAA xAB xCD”字符串应该不难。

链接地址: http://www.djcxy.com/p/25715.html

上一篇: Bash 'printf' equivalent for command prompt?

下一篇: Which MySQL data type to use for storing boolean values