14

How can I make a script executable in windows. just like what the chmod +x command does in linux. I have browsed but got no definite solution. Thanks for helping out.

Wisdom
  • 161
  • 1
  • 2
  • 6
  • What kind of script is it? – Daniel Pryden Aug 28 '18 at 21:22
  • I am not even the person that built the script. It is git-ftp client downloaded from github for uploading. In the installation guide a step is to chmod +x it ie making it executable but that is linux guide. am using windows so I need to make it executable as well on windows. It is a downloaded script to say, I dont know the type of script it is. – Wisdom Aug 29 '18 at 10:21

2 Answers2

3

You need to give the file an executable extension. Windows executes .bat, .com and .exe files by default, but the PATHEXT environment variable determines which extensions can be executed without even writing out their extensions and in what order they will be tried.

What will be actually executed depends on the registry settings under HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\, which are also edited by the "Open with..." graphical dialogs in the Explorer. For details about that, see the answer for a different question: https://stackoverflow.com/a/3924822/1584012

In your case the git-ftp script uses bash which is not pre-installed on most Windows machines. If your Windows edition supports the Windows Subsystem for Linux optional component, I suggest just installing that. But there are other options, like Cygwin, Wubi or a virtual machine.

As you wrote in your comment, Git for Windows includes an MSys2 bash shell, which is a successor of Cygwin in some sense.

wigy
  • 2,174
  • 19
  • 32
  • I am not even the person that built the script. It is git-ftp client downloaded from github for uploading. In the installation guide a step is to chmod +x it ie making it executable but that is linux guide. am using windows so I need to make it executable as well on windows. It is a downloaded script to say, I dont know the type of script it is – Wisdom Aug 29 '18 at 10:21
  • On Linux the 1st line of file usually contains how that script should be run (opposed to Windows it is not the extension but the file content that determines how it should be run). – wigy Aug 29 '18 at 12:34
  • If you check this: https://github.com/git-ftp/git-ftp/blob/736baabfc86b4618715b09a43af64c7254def039/git-ftp#L1 it will be clear it is a bash script. Please update your question to point to this specific script, so the answer matches your question. – wigy Aug 29 '18 at 12:36
  • @Wisdom Did it help you? Which way did you choose? – wigy Sep 02 '18 at 11:07
  • 1
    Thanks much @wigy. I used git bash directly to run the commands and it is working well like am running it on a linux os. Can't really explain why but that solved my problem. Thanks so much. – Wisdom Sep 04 '18 at 02:32
  • There must be a way to give a file +x, because when you execute `ls -al` you see: `drwxr-xr-x`. I see some python files have it, others don't, so don't tell me it is determined by the extension... – jaques-sam Apr 24 '19 at 08:19
2

Run:

git add --chmod=+x filename

This git adds the file, and makes it executable before you then git commit to push.

double-beep
  • 5,031
  • 17
  • 33
  • 41