1

フォルダーを作成するバッチ スクリプトを作成しました。パスは入力パラメーターとして与えられ、フォルダー名は今日の日付です。

for /f "tokens=2-4 delims=/ " %%a in ('date /T') do set year=%%c
for /f "tokens=2-4 delims=/ " %%a in ('date /T') do set month=%%a
for /f "tokens=2-4 delims=/ " %%a in ('date /T') do set day=%%b
set TODAY=%day%_%month%_%year%
mkdir %1% %TODAY%

そして、私が得る出力は次のとおりです。

arvind_test.bat C:\Users\M1015807\Desktop\logs\ C:\Users\M1015807\Desktop\logs\

C:\Users\M1015807\Desktop\zip\test>for /F "tokens=2-4 delims=/ " %a in ('date /T') do set year=%c

C:\Users\M1015807\Desktop\zip\test>set year=2013

C:\Users\M1015807\Desktop\zip\test>for /F "tokens=2-4 delims=/ " %a in ('date /T') do set month=%a

C:\Users\M1015807\Desktop\zip\test>set month=04

C:\Users\M1015807\Desktop\zip\test>for /F "tokens=2-4 delims=/ " %a in ('date /T') do set day=%b

C:\Users\M1015807\Desktop\zip\test>set day=16

C:\Users\M1015807\Desktop\zip\test>set TODAY=16_04_2013

C:\Users\M1015807\Desktop\zip\test>mkdir C:\Users\M1015807\Desktop\logs\TODAY
A subdirectory or file C:\Users\M1015807\Desktop\logs\TODAY already exists.
>> was unexpected at this time.

誰でも助けてください..

4

2 に答える 2

3

数値%変数は で囲まれるべきではありません。%先頭に があるだけ%です。表現:

mkdir %1% %TODAY%

次の要素があります。

  • mkdir;
  • %1(次の記号を使用しないことに注意してください%);
  • % %(空の文字列である可能性が最も高い);
  • TODAY (リテラル文字列TODAY); と
  • 最後にネイキッド%(メモリから、空の文字列も得られます)。

これは、次のスクリプトで確認できます。

@echo off
set TODAY=blah
echo mkdir %1% %TODAY%

として呼び出すと、次のようになりmyscript.cmd helloます。

mkdir helloTODAY

スクリプトを次のように変更します。

@echo off
set TODAY=blah
echo mkdir %1 %TODAY%

%( の直後に を削除すると1)必要なものがより多くなります(ただし、実際のコードには\、例のようにスペースではなく、パスとディレクトリが分離されている可能性があります):

mkdir hello blah
于 2013-04-16T06:40:46.703 に答える