0

テキスト ファイルの各行を出力する for ループがあります。代わりに、logPath.
これはコードです:

  set enabledelayedexpansion

  for %%G in (C:\ExecutionSDKTest_10.2.2\*.properties) DO (
      Set fileName=%%~nxG
       ...
     set logPath="C:/ExecutionSDKTest_10.2.2/Logs/!fileName!.log"
       ...         
        For /f "tokens=*" %%B in (!logPath!) Do (
      echo Inside the for loop for printing each line!!
      set logLine=%%B
      print !logLine!  REM this prints the logPath instead of each logLine and jumps out of this for loop after the 1st iteration!
     )
 )

何か助けはありますか?

4

3 に答える 3

0
echo off
For %%G in (C:\ExecutionSDKTest_10.2.2\*.properties) DO (      
      FOR /F "tokens=*" %%i in (%%G) do @echo %%i 
 )
于 2012-07-06T21:30:25.293 に答える
0

「無効なスイッチ」エラー メッセージを発行している行はわかりませんが、潜在的な問題がいくつか見られます。

  1. 使用するには、遅延拡張!variables!を有効にする必要があります

    SetLocal EnableDelayedExpansion
    
  2. '/'ファイル名に使用しないでください。'\'

    set logPath="C:\ExecutionSDKTest_10.2.2\Logs\!fileName!.log"
    
  3. printコマンドは、テキスト ファイルをプリンターに送信します。に変更しますecho

    echo !logLine!
    
于 2012-07-07T09:00:56.967 に答える
0

スラッシュの代わりにバックスラッシュを使用します。

set "logPath=C:\ExecutionSDKTest_10.2.2\Logs\!fileName!.log"

通常、Windows ではこれらを同じ意味で使用できますが、cmdスラッシュは組み込みコマンドのスイッチとオプションに使用される特殊なケースです。そして、そのパーサーはしばしばスラッシュにつまずきます。ただし、通常、そのようなパスを外部コマンドに安全に渡すことができます。

于 2012-07-07T09:05:07.823 に答える