以下の for ループで設定した変数 myVar を使用して、ファイルの名前を変更しようとしています。問題は、名前の変更が機能していないことです。理由を教えてもらえますか?
For /F %%A in ('"type tmpFile2.txt"') do set myVar=%%A
ren file1.txt file2%myVar%.txt
以下の for ループで設定した変数 myVar を使用して、ファイルの名前を変更しようとしています。問題は、名前の変更が機能していないことです。理由を教えてもらえますか?
For /F %%A in ('"type tmpFile2.txt"') do set myVar=%%A
ren file1.txt file2%myVar%.txt
こんにちは、このコードを試してください。
for /F "tokens=*" %%i in (myfile.txt) do (
set %filename% = %%i
ren file1.txt file2%filename%.txt
)
コードは機能しています。問題は tmpfile2.txt コンテンツ (トークン) にある可能性があります。
または、変数値にスペースがあり、それが機能しない理由である可能性があります。
tmpfile2 の内容がなければ、なぜ機能しないのかわかりません。
何が起こっているかを確認するには、次の方法を試してください。
For /F "delims= usebackq" %%# in ("tmpFile2.txt") do (Echo "myVar=%%#" & set "myVar=%%#")
Echo Rename "file1.txt" "file2%myVar%.txt"
Rename "file1.txt" "file2%myVar%.txt"
または、これ以外:
For /F "delims= usebackq" %%# in ("tmpFile2.txt") do (Rename "file1.txt" "file2%%#.txt")