KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am trying to convert a long filename to a short filename (8.3) on Windows. A batch-file with a command line argument works as intended: short.bat : @echo OFF echo %~s1 calling short.bat C:\Documents and Settings\User\NTUSER.DAT returns C:\DOCUM~1\USER\NTUSER.DAT However, I don't like having an extra .bat-file for this. I would rather call cmd.exe with the whole command from a ruby script. How can I do this? As an intermediate step I tried to hardcode the path in the batch-file, but that does not work: short1.bat : @echo OFF SET filename="C:\Documents and Settings\User\NTUSER.DAT" echo %filename% echo %~sfilename% echo %filename% works, but echo %~sfilename% gives the following error: The following usage of the path operator in batch-parameter substitution is invalid: %~sfilename% For valid formats type CALL /? or FOR /? If short1.bat works, how can I convert this into a one-liner that can be called with cmd.exe \c ... ? There is another question ( how to get DOS path instead of Windows path ), however that one is specifically asking for the path of the current directory.
Tags (comma-separated)
Save Edits
Cancel