Yes, Vb.vbs is a text file, it's encoded in ANSI. Filename x '...../x.vbs' encoding='vbs-file-encoding' termstr=crlf ; It seems I found the answer here, I am creating the Vb.vbs file in SAS using ANSI as encoding, and the file I copy the output to is also ANSI. It's now finally working. I don't think I need to change the line feed, it's fine. Basically, it's a code like the below, I'm using SAS to generate Vbscript commands. Since my remote session is UTF-8, I set the encoding to ANSI. %macro Change_path(playlist_name,arqui,add_track_only=false);
data _null_;
file "/home/jrsousa2/Vbscripts/&playlist_name..vbs" encoding=ANSI;
set &arqui end=fim;
length cmd $1000.;
/* Variables */
if _n_=1 then do;
put "Dim iTunesApp";
put "Dim playlist";
put "Dim track";
put;
/*Connect to iTunes app*/
put "Set iTunesApp = CreateObject(""iTunes.Application.1"")";
put "Set FSO = CreateObject(""Scripting.FileSystemObject"")";
put;
/*'Create playlist*/
put "Set playlist = iTunesApp.LibrarySource.Playlists.ItemByName(""&playlist_name"")";
put "If playlist is Nothing Then";
put " iTunesApp.CreatePlaylist(""&playlist_name"")";
put " Set playlist = iTunesApp.LibrarySource.Playlists.ItemByName(""&playlist_name"")";
put "Else";
/*'DELETE*/
put " playlist.delete";
/*'recreate playlist*/
put " iTunesApp.CreatePlaylist(""&playlist_name"")";
put " Set playlist = iTunesApp.LibrarySource.Playlists.ItemByName(""&playlist_name"")";
put "End If";
put;
/* HERE WE DON'T WANT MISTAKES */
put "On error resume next";
put "count = 0";
put "track_no = 0";
put "Miss = 0 ";
put;
/* SAS IF END */
end;
/* TRACK NO. */
cmd="Wscript.Echo ""Overall track: "||put(_n_,z5.)||"""";
put cmd;
cmd="If FSO.FileExists("""||trim(location)||""") Then";
put cmd;
put " " "track_no = track_no+1";
cmd="WScript.Echo ""Adding track "" & track_no & "": "||trim(File)||"""";
put " " cmd;
cmd="playlist.AddFile("""||trim(location)||""")";
put " " cmd;
/* THE BELOW IS A SAS COMMAND */
if lowcase("&add_track_only")="false" and not missing(new_location)
then do;
cmd="Set track = playlist.Tracks.Item(track_no)";
put " " cmd;
put " If track.Location<>"""" Then";
cmd="If FSO.FileExists("""||trim(new_location)||""") Then";
put " " cmd;
put " " "Wscript.Echo ""File exists, not moving""";
put " Else";
put " Wscript.Echo ""Changing iTunes location""";
/* HERE I BREAK THE CODE INTO 2 LINES, DUE TO SIZE */
cmd="FSO.MoveFile """||trim(location)||""", _";
put " " cmd;
cmd=""""||trim(New_location)||"""";
put " " cmd;
cmd="track.Location = """||trim(New_location)||"""";;
put " " cmd;
put " " "If (Err.Number=0 or true) Then count = count+1";
cmd="Wscript.Echo ""Moved "" & count & "" tracks""";
put " " cmd;
put " End If";
put " End If";
end;
put "Else";
put " Miss = Miss+1";
put " Wscript.Echo ""File not found!""";
put "End If";
put "Wscript.Echo";
put;
put;
if Fim
then do;
cmd="Wscript.Echo ""Finished: "" & Count & "" files moved""";
put cmd;
cmd="Wscript.Echo ""Missing files: "" & miss ";
put cmd;
put "Wscript.StdOut.Write vbNewLine & ""Press ENTER to continue""";
put "Do While Not WScript.StdIn.AtEndOfLine";
put " Input = WScript.StdIn.Read(1)";
put "Loop";
end;
/* FIM */
run;
%mend;
... View more