The file name has a prefix of tmp. I need to remove the prefix from the name. I was trying to use the split and join method to break up the name and rejoin it again with out the tmp. But I'm not sure these commands work in Adobe. Below is the code I have written so far. What am I doing wrong?
logInfo(vars.filename);
vars.nameOnly = vars.filename.rmdir();
vars.f1 = vars.nameOnly.split("_");
vars.f2 = f1.shift();
vars.finalName = f2.join("_");
logInfo(vars.finalName);
vars.cmd = path + vars.finalName;
execCommand(cmd);
Solved! Go to Solution.
Views
Replies
Total Likes
Hi @4uSwan ,
The split function actually returns an array of elements that consist of all the substrings that were next to a separator.
For eg, if you run the following code,
var testString = "hello world for test" ;
var array = testString.split(" ");
The resulting array variable would have content as ["Hello","world","for","test"]
From the array, you can choose the desired data using the array[index] format.
In your case, var f1 = vars.nameOnly.split("_");
you get the f1 = ["tmp","rest_of_filename"]
to get the filename excluding the temp, you can use f1[1] to get the "rest of filename";
You can use the following code to rename a file in SFTP
var filepath = "/sftp/<path to file folder>/";
var oldFilename = "tmp_test.csv";
var newFilename = oldFilename.split("_")[1];
logInfo(newFilename);
var command = "mv -i "+filepath+oldFilename+" "+filepath+newFilename;
var result = execCommand(command);
Hope it helps!
Views
Replies
Total Likes
Hello @4uSwan
Did you try using fileRename function?
more details are given here:
https://docs.adobe.com/content/help/en/campaign-classic/technicalresources/api/f-fileRename.html
Views
Replies
Total Likes
Hi ,
Can you please add below function and try if it's works. I am using this function to rename my csv file using JS script in workflow and it's working fine for me.
function test(oldName,newName)
{
try
{
var temp= new File(oldName);
temp.renameTo(newName);
}
catch(e)
logInfo("error " + e)
}
}
Views
Replies
Total Likes
Hi @4uSwan ,
The split function actually returns an array of elements that consist of all the substrings that were next to a separator.
For eg, if you run the following code,
var testString = "hello world for test" ;
var array = testString.split(" ");
The resulting array variable would have content as ["Hello","world","for","test"]
From the array, you can choose the desired data using the array[index] format.
In your case, var f1 = vars.nameOnly.split("_");
you get the f1 = ["tmp","rest_of_filename"]
to get the filename excluding the temp, you can use f1[1] to get the "rest of filename";
You can use the following code to rename a file in SFTP
var filepath = "/sftp/<path to file folder>/";
var oldFilename = "tmp_test.csv";
var newFilename = oldFilename.split("_")[1];
logInfo(newFilename);
var command = "mv -i "+filepath+oldFilename+" "+filepath+newFilename;
var result = execCommand(command);
Hope it helps!
Views
Replies
Total Likes
Views
Likes
Replies