Order of resolving in Windows search PATH - windows

I have more than 40 folders are added into search PATH on my Windows 7 machine. I used to put Python environment in the User PATH. Yesterday the system can't find python.exe suddenly... I tried to move the folder path to System PATH and the problem solved.
But today, I installed Tex live package on my machine. By default, the path of C:\texlive\2015\bin\win32 was added to User PATH. System can't find any file under this folder. Then I tied to move C:\texlive\2015\bin\win32 to the end of System PATH. System still can't find any file in this folder... Finally, I tried to paste C:\texlive\2015\bin\win32 at the beginning of System PATH, than it works (all the files in this folder can be searched).
can some one explain why I put the path to the end it doesn't work but when I put the path at the beginning it works? I prefer to put some path to User PATH, I don't know why now them can't be searched?

Related

Set Up ClickOnce in a specific File on C:\

I want Export the installtion by using visual Studio's "Click Once".
While i try to set the path (C:\MyInstallationFolder) I get the following issue:
Publish.InstallUrl: The string must be a fully qualified URL or UNC
path, for example "http://www.contoso.com/myapplication" or
"\server\myapplication".
I know that by default, if i leave this path empty, the instalation will be created somewhere inside of "AppData" but i must create the installation folder in this path (C:\MyInstallationFolder).
Is this possible?

How to add PostgreSQL ('psql.exe') to PATH in Windows?

I've tried conventional way. i.e. to add it to PATH (both 'bin' and 'lib' folder) as can be seen in the 'Image 2' as below.
I've restarted computer multiple times. Still it doesn't work.
How to add psql.exe to PATH
What am I missing?

current directory vs directory from which the application loaded

In the Microsoft documention the dll loading order is defined under the following link
https://learn.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order
If SafeDllSearchMode is disabled, the search order is as follows:
The directory from which the application loaded.
The current directory.
The system directory. Use the GetSystemDirectory function to get the path of this directory.
The 16-bit system directory. There is no function that obtains the path of this directory, but it is searched.
The Windows directory. Use the GetWindowsDirectory function to get the path of this directory.
The directories that are listed in the PATH environment variable. Note that this does not include the per-application path specified by the App Paths registry key. The App Paths key is not used when computing the DLL search path.
I don't understand the difference between
directory from which the application loaded
current directory
Let's say the application is installed in %programfiles% and I have a shortcut on the desktop to start it.
In that scenario what is "The directory from which the application loaded."?
The current directory must be the dektop, right?
Any clarification is greatly appreciated.

Git Folder Path spelling Capitalization mismatch

I am new in git.
I am playing Tortoise git client on windows and it show path as small letter while it is in Capital letter for folder path.
Screenshot is as below.
as you can see path real path on Windows Iis as E:\HRIS\HRIS_Leave\Application\HRIS 3.5\SageFrame\Modules\HRISLeave\js but it must need to be shown as
Application/HRIS 3.5/SageFrame/Modules/HRISLeave/js
but it shows as
application/hris 3.5/sageframe/Modules/HRISLeave/js
i have other files on this directory too but they shown in path
Application/HRIS 3.5/SageFrame/Modules/HRISLeave/js
only LeaveRequest.js is on another folder on git but in disk it located on same folder.
how to resolve this issue or move this file to exact folder path.
See TortoiseGit issue #2559
and issue #1268
Could be a workaround: Do not set the Cache of Icon Overlay to Default, use the others.
Those issues are closed at Aug 18, 2015.

Postgres "psql not recognized as an internal or external command"

For Postgres, I keep getting this error multiple times even though I have already set the location of the bin folder to the path variable in Windows 8. Is there something else I'm missing?
(I can't post pictures since I don't have enough reputation)
Just an update because I was trying it on Windows 10 you do need to set the path to the following:
;C:\Program Files\PostgreSQL\14\bin ;C:\Program Files\PostgreSQL\9.5\lib
PS : 14 is the current version, check whatever version you are on.
You can do that either through the CMD by using set PATH [the path]
or from my
computer => properties => advanced system settings=> Environment
Variables => System Variables
Then search for path.
Important: don't replace the PATHs that are already there just add one beside them as follows ;C:\Program Files\PostgreSQL\9.5\bin ;C:\Program Files\PostgreSQL\9.5\lib
Please note: On windows 10, if you follow this: computer => properties => advanced system settings=> Environment Variables => System Variables> select PATH, you actually get the option to add new row. Click Edit, add the /bin and /lib folder locations and save changes.
Then close your command prompt if it's open and then start it again
try psql --version
If it gives you an answer then you are good to go if not try echo %PATH% and see if the path you set was added or not and if it's added is it added correctly or not.
Important note:
Replace 9.5 with your current version number. As of 2021, that is 13.
For 2022 is 14.
Windows 10
It could be that your server doesn't start automatically on windows 10 and you need to start it yourself after setting your Postgresql path using the following command in cmd:
pg_ctl -D "C:\Program Files\PostgreSQL\11.4\data" start
You need to be inside "C:\Program Files\PostgreSQL\11.4\bin" directory to execute the above command.
EX:
You still need to be inside the bin directory to work with psql
Enter this path in your System environment variable.
C:\Program Files\PostgreSQL\[YOUR PG VERSION]\bin
In this case i'm using version 10. If you check the postgres folder you are going to see your current versions.
In my own case i used the following on separate lines:
C:\Program Files\PostgreSQL\10\bin
C:\Program Files\PostgreSQL\10\lib
You can follow the following steps below.
C:\Program Files\PostgreSQL\yourversion
I had your issue and got it working again (on windows 7).
My setup had actually worked at first. I installed postgres and then set up the system PATH variables with C:\Program Files\PostgreSQL\9.6\bin; C:\Program Files\PostgreSQL\9.6\lib. The psql keyword in the command line gave no errors.
I deleted the PATH variables above one at a time to test if they were both really needed. Psql continued to work after I deleted the lib path, but stopped working after I deleted the bin path. When I returned bin, it still didn't work, and the same with lib. I closed and reopened the command line between tries, and checked the path. The problem lingered even though the path was identical to how it had been when working. I re-pasted it.
I uninstalled and reinstalled postgres. The problem lingered. It finally worked after I deleted the spaces between the "; C:..." in the paths and re-saved.
Not sure if it was really the spaces that were the culprit. Maybe the environment variables just needed to be altered and refreshed after the install.
I'm also still not sure if both lib and bin paths are needed since there seems to be some kind of lingering memory for old path configurations. I don't want to test it again though.
If you tried all the answers and still spinning your heads, don't forget to change the version with your one which you downloaded.
For example, don't simply copy paste
;C:\Program Files\PostgreSQL\9.5\bin ;C:\Program Files\PostgreSQL\9.5\lib
More clearly,
;C:\Program Files\PostgreSQL\[Your Version]\bin ;C:\Program Files\PostgreSQL\[Your Version]\lib
I was spinning my heads. Hope this helps.
Make sure that the path actually leads to the executables. I'm using version 11 and it did not work until this was set as the path:
C:\Program Files\PostgreSQL\11\bin\bin
Maybe this is how version 11 is structured or I somehow botched the installation but I haven't had a problem since.
Even if it is a little bit late, i solved the PATH problem by removing every space.
;C:\Program Files\PostgreSQL\<installed version>\bin;C:\Program Files\PostgreSQL\<installed version>\lib
works for me now.
Simple solution that hasn't been mentioned on this question: restart your computer after you declare the path variable.
I always have to restart - the path never updates until I do. And when I do restart, the path always is updated.
Find your binaries file where it is saved. get the path in terminal mine is
C:\Users\LENOVO\Documents\postgresql-9.5.21-1-windows-x64-binaries (1)\pgsql\bin
then find your local user data path, it is in mostly
C:\usr\local\pgsql\data
now all we have to hit the following command in the binary terminal path:
C:\Users\LENOVO\Documents\postgresql-9.5.21-1-windows-x64-binaries (1)\pgsql\bin>pg_ctl -D "C:\usr\local\pgsql\data" start
done!
Always better to install a previous version or in the installation make sure you specify the '/data' in a separate directory folder "C:\data"
For Windows 10 and 11 users, here are the steps:
Go to Edit environment variables for your account (search for it on the start menu)
It will open the System Properties form — click the Environment Variables
Under the User variables for <username> (or you can add it in system variables), find the path variables and click edit, and add the path to your Postgres bin file address (in my case it's C:\Program Files\PostgreSQL\15\bin).
And save it and re-open the terminal.

Resources