8

私は同等のことをする必要があります

set ENVAR=`some-command`

windows/cmd.exeスクリプト内。Cygwinはオプションではありません。

ボーナスマークの場合:一般的にバックティックに相当するcmd.exeはありますか?

4

2 に答える 2

8

迅速で汚い方法は、ファイルにリダイレクトしてからこれを読み取ることです。

some-command>out.txt
set /p ENVAR=<out.txt

forもあなたを助けることができると思いますが、私は正確な構文を覚えていません。次のようなものを試してください

for /f "usebackq" %x in (`some-command`) do set ENVAR=%x

token私はおそらくいくつかまたはdelimオプションを忘れました...

于 2010-07-07T23:59:16.817 に答える
3

「おそらく」ではなく、入力データの最初のスペースまたはタブのみを変数に含める場合を除いて、「delims =」(「区切り文字なし」を意味します)を指定する必要があります。

オペレーターとシェルによるオプションの認識における潜在的な混乱を避けるために、最後のオプションとして「delims=」を指定することをお勧めします。

つまり

FOR /F "usebackq delims=" %%a IN (`cygpath.exe -u "%~1"`) DO (
    SET CMDNAME=%%~a
    SHIFT
)

FOR/Fに関するSS64の記事を参照してください。

于 2015-02-01T00:39:16.023 に答える