special characters in file path
diep0269 opened this issue · 4 comments
The path to my file includes special characters: file:////g:\Erich\01 Finanzen\16 Fremdwährungskredit Tilgungsträger\Zinsenaufteilung Erich-Claudia.xlsx MS-Excel opens but the file coudn'b be open: g:\Erich\01 Finanzen\16 Fremdw%C3%A4hrungskredit Tilgungstr%C3%A4ger\Zinsenaufteilung Erich-Claudia.xlsx couldn't be found.
It is not clear where this path is used. Have you tried to use"
mark around the path? Also do not use the encoded version ..%C3%..
I'm having troubles with transfering downloaded files to an application if the file has & character (maybe others too) in its path. Surrounding with "" doesn't help...
Executable -> [DOWNLOADED_PATH] -> Link Context -> Surround arguments with quote characters -> Error
Execute cmd file with [start "path_to.exe" "%*"] in it -> [DOWNLOADED_PATH] -> Link Context -> Error
Execute cmd file with [start "path_to.exe" "%*"] in it -> [DOWNLOADED_PATH] -> Link Context -> Surround arguments with quote characters -> Error
Execute cmd file with [start "path_to.exe" %*] in it -> [DOWNLOADED_PATH] -> Link Context -> Surround arguments with quote characters -> Error
Is there some walkaround here?
Сan you help me with transferring files with special characters in their names to other programs on windows?
Application fails to transfer for example a torrent to torrent client if the torrent file has symbols like &, + and other in it's name.
It's hard to use batch script / cmd files with parameters which contain %&= and possibly some other characters, because many characters have special meaning in batch-world, even if surrounded in dquotes. Powershell also failed for me for some reason, so I used a JScript and cscript.exe as my "receiving parameters" endpoint, it also starts much faster than powershell scripts. Here is what I use to transfer webpage title and url to different text file(s) or clipboard (if you edit that in).
Don't lint the code, things are still at experiment stage. o)
exab_to_file.js:
//##############################################################################
function arrayToFile( lines, filePath, append ) {
var fso, f, ts, s;
var ForReading = 1, ForWriting = 2, ForAppending = 8;
var TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0;
var append = typeof append != "undefined" ? append : false;
var mode = append ? ForAppending : ForWriting;
//var AbsPath = String(Request.ServerVariables("PATH_TRANSLATED"));
//var FileToOpen = AbsPath.replace("counter.asp", "test.txt");
fso = new ActiveXObject("Scripting.FileSystemObject");
ts = fso.OpenTextFile( filePath, mode, true, TristateTrue);
for(var i=0;i<lines.length;i++) {
ts.WriteLine( lines[i] );
}
ts.Close( );
}
//##############################################################################
function copyFileContentToClipboard( filePath ) {
var oShell = new ActiveXObject("WScript.Shell");
var cmdLine = 'cmd.exe /c clip < "'+filePath+'"'
oShell.Run( cmdLine, 0, false);
}
//##############################################################################
function getNewTmpFileFullPath( tmpFileName ) {
var tmpFolderPath = new ActiveXObject("Scripting.FileSystemObject").GetSpecialFolder(2);
return tmpFolderPath+"\\" + tmpFileName;
}
//##############################################################################
//https://stackoverflow.com/a/8260383
function parseVideoIDFromYTUrl(url){ // was "youtube_parser()"
var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/;
var match = url.match(regExp);
return (match&&match[7].length==11)? match[7] : false;
}
//##############################################################################
function getYoutubeThumbnailUrlByVideoID( ytVideoID) {
return "https://i.ytimg.com/vi/"+ ytVideoID + "/hqdefault.jpg";
}
//##############################################################################
function getDatestamp() {
var currentTime = new Date()
var years = currentTime.getFullYear();
var months = currentTime.getMonth()+1;
var days = currentTime.getDate();
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()
var seconds = currentTime.getSeconds()
if (months < 10) months = "0" + months;
if (days < 10) days = "0" + days;
if (hours < 10) hours = "0" + hours;
if (minutes < 10) minutes = "0" + minutes;
if (seconds < 10) seconds = "0" + seconds;
return years + "" + months + "" + days + "-" + hours + "" + minutes + "" + seconds;
//return years + "_" + months + "_" + days + " " + hours + ":" + minutes + ":" + seconds + " ";
}
//##############################################################################
// main
//##############################################################################
WSH.Echo( getDatestamp() );
var IN_url = WScript.Arguments(0);
var IN_title = WScript.Arguments(1);
var IN_filepath = WScript.Arguments(2);
WSH.Echo("IN_url : " + IN_url);
WSH.Echo("IN_title : " + IN_title);
WSH.Echo("IN_filepath: " + IN_filepath);
var appendMeContent = [];
appendMeContent.push( "" );
appendMeContent.push( getDatestamp() + " " + IN_title );
appendMeContent.push( " " + " " + IN_url);
var result = arrayToFile( appendMeContent , IN_filepath, true);
//var result = copyFileContentToClipboard( IN_filepath );