1. ホーム
  2. batch-file

[解決済み] バッチファイル内でファイルの内容を変数に読み込むには?

2022-04-13 14:34:31

質問

このバッチファイルは、ビルドをTESTからLIVEにリリースするものです。このファイルにチェック制約を追加して、特定のフォルダーにリリース文書があることを確認したいです。

"C:\Program Files\Windows Resource Kits\Tools\robocopy.exe" "\\testserver\testapp$"        
"\\liveserver\liveapp$" *.* /E /XA:H /PURGE /XO /XD ".svn" /NDL /NC /NS /NP
del "\\liveserver\liveapp$\web.config"
ren "\\liveserver\liveapp$\web.live.config" web.config

そこで、どうすれば実現できるのか、いくつか質問があるのですが...。

  1. があります。 version.txt ファイル内の \\testserver\testapp$ フォルダの中にあり、このファイルの内容はビルド番号のみです(例えば、45 - ビルド45の場合)。 の内容を読み取るにはどうすればよいですか? version.txt をバッチファイル内の変数に入れることができますか?

  2. あるファイルが, \\fileserver\myapp\releasedocs\ {build}.doc は、{build} の代わりにパート 1 の変数を使用して存在しますか?

どのように解決するのですか?

ファイルの内容を変数に読み込む。

for /f "delims=" %%x in (version.txt) do set Build=%%x

または

set /p Build=<version.txt

どちらも1行だけのファイルでは同じ動作をしますが、それ以上の行数では for バリアントは 最後の の行を変数に入れます。 set /p を使用します。 を最初に指定します。

変数を使用する - 他の環境変数と同じように - 結局のところ、それは1つです。

%Build%

そこで、存在を確認するために

if exist \\fileserver\myapp\releasedocs\%Build%.doc ...

ただし、そこではUNCパスが許可されていない可能性が高いです。今すぐにはテストできませんが、このことは心に留めておいてください。