2017-12-12 8 views
0

私は新しく、明らかな質問をしているかもしれません。do setコマンドのスペースを含むファイル名

echo @off 

echo starting load of West One Data Extract v1g 

FOR /F %%I IN ('DIR \\<server name>\Data\Servicing\Data\abc*.* /B /O:D') DO SET NEWEST_FILE_1=%%I 

echo Uploading "%NEWEST_FILE_1%" 

ファイル名は "ABCの123.xls" 出力エコーであるため、 "アップロードABC"

である私はDIR \\<server name>\Data\Servicing\Data\abc*.* /B /O:Dを実行した場合には、 "ABCの123.xls" に罰金と結果作品

することができますファイル名のスペースを受け入れるようにコードを変更する方法を教えてください。

+0

'IN/F "delims =" %%私は( 'DIR \\データ\サービシング\データ\ ABC * */B/O \ 。:D')FOR SETを「DO NEWEST_FILE_1 = %%私は " – Squashman

+0

@スカッシュマン - なぜあなたは非常に多くのアンサーを、代わりにコメントとして投稿していますか?アンサーとして?あなたはアップホントとポイントを必要としませんか? – npocmaka

+0

@npocmaka、私は怠け者だから。 – Squashman

答えて

0

デフォルトでは、FOR /Fコマンドはコマンドの出力を解析し、デフォルトの区切り文字に基づいてトークンに分割します。これはすべてFORコマンドのヘルプファイルで説明されています。したがって、デリミタを使用しないように指示するには、DELIMSオプションを使用する必要があります。

FOR /F "delims=" %%I IN ('DIR \\<server name>\Data\Servicing\Data\abc*.* /B /O:D') DO SET "NEWEST_FILE_1=%%I" 
関連する問題