我試圖讓電子證書分發爲我上大學的事件之一。我使用Photoshop來生成具有不同名稱和卷號的批量證書。現在,這些文件被命名爲core_01Data集1.JPG,core_02Data集2.JPG,等。爲了發佈到網上,他們需要重新命名和排序WRT與會者的姓名。 我有一個.txt文件,其中包含參與者名稱,卷號和大學名稱(以製表符分隔的格式)。我需要根據.txt文件的內容重命名文件。我嘗試了一下,但不能走得太遠。請幫忙。如何使用文本文件的內容(製表符分隔格式)重命名文件夾中的文件?
#include<stdio.h>
#include<dirent.h>
int main()
{
FILE *fp;
char arr[3][20][40];
int i=0;
char final_name[19][50]={0};
fp = fopen("./new/core.txt", "r");
while(fgetc(fp)!=EOF)
{
while(fgetc(fp)!='\n' && i<20)
{
fscanf(fp,"%s%s%s", arr[0][i], arr[1][i], arr[2][i]);
i++;
}
}
i=1;
while(i<20)
{
strcat(final_name[i-1], arr[0][i]);
strcat(final_name[i-1], "_");
strcat(final_name[i-1], arr[1][i]);
strcat(final_name[i-1], "_");
strcat(final_name[i-1], arr[2][i]);
printf("%s\n", final_name[i-1]);
i++;
}
char name[19][50]={0};
char buf[19][50]={0};
for(i=1; i<20; i++)
{
if(i<10)
{
sprintf(buf[i-1], "core_0%d_Data Set %d", i, i);
}
else
{
sprintf(buf[i-1], "core_%d_Data Set %d", i, i);
}
printf("%s...\n", buf[i-1]);
name[i-1]=buf[i-1];
}
i=0;
DIR *d;
struct dirent *dir;
d = opendir("./new/");
if (d)
{
while ((dir = readdir(d)) != NULL)
{
printf("%s\n", dir->d_name);
if (strcmp(dir->d_name, buf[i]) == 0)
{
rename(dir->d_name, final_name[i]);
i++;
}
}
closedir(d);
}
}
鏈接的文件:https://goo.gl/S6B3AB
爲什麼要在C中嘗試這樣做?只需使用任何簡單的腳本語言。如果不是Windows,我會建議使用shell,但仍然可以輕鬆地在python或perl(對於windows存在)中執行此操作。我敢肯定,PowerShell中也能工作,雖然我不是太熟悉 –
我更熟悉C和C++,因此決定與他們往前走。有關該計劃的任何幫助? –