たとえば、次のようなテキストファイルがあります。
c:\test\test1.txt;d:\test2\j.js;d:test2\2.cs
Windowsコマンドラインのbatファイルを使用して区切られたファイルを、batファイルに渡される特定のフォルダーにコピーする必要があります。どうすればこれを達成できますか?
たとえば、次のようなテキストファイルがあります。
c:\test\test1.txt;d:\test2\j.js;d:test2\2.cs
Windowsコマンドラインのbatファイルを使用して区切られたファイルを、batファイルに渡される特定のフォルダーにコピーする必要があります。どうすればこれを達成できますか?
非常に簡単です、実際:
for /f %%l in (somefile.txt) do (
for %%f in (%%l) do (
copy "%%f" %1
)
)
最初のループは、ファイルに対して行ごとに繰り返されます。2つ目は、セミコロン(および、スペースやコンマなど)で分割されます。ファイル名が指定したものと同じように見える場合は、機能するはずです。
コピー先もそのように見える場合は、さらに2つのループを追加するだけです。
for /f %%l in (somefile.txt) do (
for %%f in (%%l) do (
for /f %%k in (destination.txt) do (
for %%g in (%%k) do (
copy "%%f" %%g
)
)
)
)
次のbatch-fileコマンドを使用して、ファイルリストからファイルをコピーできます。
for /f "usebackq delims=;" %%f in (filelist.txt) do copy %%f %1
filelist.txtの各ファイル名が別々の行にあると仮定します。
c:\test\test1.txt;
d:\test2\j.js;
d:\test2\2.cs
ただし、1行を解析する方法はわかりません。