Bash'printf'相当于命令提示符?

我正在寻求在Windows的命令提示符pipe一些stringinput到一个小型的C程序。 在bash中我可以使用

$ printf "AAAAA\x86\x08\x04\xed" | ./program 

本质上,我需要在命令提示符下转义那些hex数字。

在命令提示符/ 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] = '\0'; 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 SHELLCODE\n"); return 1; } return 0; } 

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