1

ファイル名 (fileName) をディレクトリ パス (C:\ExecutionSDKTest_10.2.2\Logs) の後ろとファイル拡張子 (.log) の前にバッチで連結しようとしていますが、fileName の先頭と末尾に空白が含まれているため、 cmd.exe は連結パス (logPath) を認識しません。何か案は?

 FOR %%G IN (C:\ExecutionSDKTest_10.2.2\*.properties) DO (
   Set fileName= %%~nxG
   REM echo !fileName!
   REM java -jar Test.jar %%~nxG > Logs\%%~nxG.log
   set logPath=%C:\ExecutionSDKTest_10.2.2\Logs\%%!fileName!%%.log%
   Echo !logPath!
   REM print each line in each of the log files
    REM FOR /F "tokens=*" %%g in (!logPath!) DO (
   REM echo %%g
   REM )
   pause
   )
4

1 に答える 1

2

ファイル名の前後にスペースがありますか? 通常、ファイル名がスペースで終わることはありません。

filenameコマンドを使用するときはスペースを避ける必要があるため、変数の先頭にスペースがありますset
の作成logPathも間違っているようです。

修正版は次のようになります

FOR %%G IN (C:\ExecutionSDKTest_10.2.2\*.properties) DO (
   Set "fileName=%%~nxG"
   REM echo !fileName!
   REM java -jar Test.jar %%~nxG > Logs\%%~nxG.log
   set "logPath=C:\ExecutionSDKTest_10.2.2\Logs\!fileName!.log"
   Echo !logPath!
   REM print each line in each of the log files
    REM FOR /F "tokens=*" %%g in (!logPath!) DO (
   REM echo %%g
   REM )
   pause
)
于 2012-06-26T21:22:24.840 に答える