1

そこで私は、いくつかの特定の処理を行うバッチ ファイルを作成することを任されました。これまでバッチを使用したことがなく、正確に必要なものに関するチュートリアルを見つけるのが難しいと感じています。(私は基本的なチュートリアルを行いました)

ディレクトリから現在編集されているファイルを取得しようとしています。私が思いついた唯一のこと(そして他の人がそうするように言ったことに気づきました)は、日付でソートされたディレクトリ内のファイルのforループであり、最初のファイルを取得してループを破ります。

いくつかの問題: 1) ループが壊れない 2) 最後に ECHO %variable% が機能しない。

@echo off
SET count=0
FOR /f %%i in ('DIR Y:\ /B /O:-D') DO (
IF count==0 (
SET NewestFile=%%i
SET count=1
)
)
@echo on
ECHO %NewestFile%

これを実行すると、次のようになります。

C:\>testing.bat
C:\>ECHO
ECHO is on.

私はバッチを初めて使用します。多分私はこれが本当にうるさいことをしているのですか?(他の StackOverflow の質問は、スペースなどを追加するだけで解決されました)

4

3 に答える 3

0

正確なコードを提供した場合は、最初の行を取得する必要があります。これは、そのための 1 つの方法です。

@echo off
FOR /f %%i in ('DIR Y:\ /B /O:-D') DO SET "NewestFile=%%i" & goto :done
:done
ECHO %NewestFile%
于 2013-07-19T01:02:49.513 に答える
0

dirファイルを降順ではなく昇順でリストするようにコマンドを変更すると、一般的な奇妙な cmd.exe スクリプト ハックを必要としないこのワンライナーを使用できます。出力の最後の行をNewestFile変数に保持するだけです (cmd.exe スクリプティング ハックと見なされる可能性があると思いますが、奇妙なものとは見なされません)。

for /f %%i in ('DIR Y:\ /B /O:D') do set NewestFile=%%i
于 2013-07-19T01:31:11.727 に答える