私は同等のことをする必要があります
set ENVAR=`some-command`
windows/cmd.exeスクリプト内。Cygwinはオプションではありません。
ボーナスマークの場合:一般的にバックティックに相当するcmd.exeはありますか?
迅速で汚い方法は、ファイルにリダイレクトしてからこれを読み取ることです。
some-command>out.txt
set /p ENVAR=<out.txt
私for
もあなたを助けることができると思いますが、私は正確な構文を覚えていません。次のようなものを試してください
for /f "usebackq" %x in (`some-command`) do set ENVAR=%x
token
私はおそらくいくつかまたはdelim
オプションを忘れました...
「おそらく」ではなく、入力データの最初のスペースまたはタブのみを変数に含める場合を除いて、「delims =」(「区切り文字なし」を意味します)を指定する必要があります。
オペレーターとシェルによるオプションの認識における潜在的な混乱を避けるために、最後のオプションとして「delims=」を指定することをお勧めします。
つまり
FOR /F "usebackq delims=" %%a IN (`cygpath.exe -u "%~1"`) DO (
SET CMDNAME=%%~a
SHIFT
)
FOR/Fに関するSS64の記事を参照してください。