Diese Shell ist Bash. Cygwin/MSYS2 Bash kann Windows-Pfade akzeptieren, aber Sie müssen mit Leerzeichen und umgekehrten Schrägstrichen umgehen. In Bezug auf Schrägstriche:
program 'C:\alfa.txt'
program C:\\alfa.txt
program C:/alfa.txt
in Bezug auf Räume:
program 'C:\alfa bravo.txt'
program C:\\alfa\ bravo.txt
program C:/alfa\ bravo.txt
Wie Sie sehen können, wenn Sie Windows-Pfade liefern, das ist ziemlich gerade nach vorn ist. Das einzige Problem, das Sie bekommen könnte, ist, wenn Sie versuchen Bash Pfade zu einem nativen Windows-Programm zu liefern:
program /tmp/alfa.txt
native Windows-Programme haben keine Vorstellung von /tmp
oder sogar /
. Cygwin/MSYS2 haben cygpath
bei der Umwandlung, diese Pfade zu unterstützen:
program $(cygpath -m /tmp/alfa.txt)
program "$(cygpath -w /tmp/alfa.txt)"
program "$(cygpath -m '/tmp/alfa bravo.txt')"
program "$(cygpath -m /tmp/alfa\ bravo.txt)"
program "$(cygpath -w '/tmp/alfa bravo.txt')"
program "$(cygpath -w /tmp/alfa\ bravo.txt)"
Randbemerkung: MinGW ein altes Projekt ist. Sie sollten Cygwin oder MSYS2 verwenden.
Was passiert, wenn der Pfad, den ich übergeben möchte, Leerzeichen enthält? – Demi
@Demetri siehe Update –