4

ファイル名に月名を使いたい。私はSQLサーバーからデータをエクスポートしています。月が3の場合、ファイルの名前はシステム日付を使用する必要があり、月が4の場合はファイル名をfebactとして出力する必要があります。

ありがとう、ラヴィ。

4

7 に答える 7

8

ファイル名の形式が指定されていません。以下のバッチ ファイルは、現在の日付の月を変換するだけです。

@echo off
setlocal EnableDelayedExpansion
set m=100
for %%m in (January February March April May June July August September October November  December) do (
   set /A m+=1
   set month[!m:~-2!]=%%m
)
rem Change tokens=2 for DD/MM/YYYY date format
for /F "tokens=1 delims=/"  %%m in ("%date%") do (
   set monthName=!month[%%m]!
)
echo %monthName%

月の名前を一定の長さにしたい場合 (例: 3 文字):

@echo off
setlocal EnableDelayedExpansion
for /F "tokens=1 delims=/" %%m in ("%date%") do (
   set /A "m=(1%%m%%100-1)*3"
)
set month=JanFebMarAprMayJunJulAugSepOctNovDec
set monthName=!month:~%m%,3!
echo %monthName%

アントニオ

于 2013-03-18T17:26:45.877 に答える
7

WMIC は私の Win XP では動作しないようです。XP Home エディションには含まれていません。

これは最も洗練されたソリューションではありませんが、機能するはずです。

@echo off
  rem 0,2 for mm/dd/yyyy  or 3,2 for dd/mm/yyyy
set month-num=%date:~3,2%
if %month-num%==01 set mo-name=jan
if %month-num%==02 set mo-name=feb
if %month-num%==03 set mo-name=mar
if %month-num%==04 set mo-name=apr
if %month-num%==05 set mo-name=may
if %month-num%==06 set mo-name=jun
if %month-num%==07 set mo-name=jul
if %month-num%==08 set mo-name=aug
if %month-num%==09 set mo-name=sep
if %month-num%==10 set mo-name=oct
if %month-num%==11 set mo-name=nov
if %month-num%==12 set mo-name=dec
echo build filename using %mo-name%

少し良く :

@echo off
  rem 0,2 for mm/dd/yyyy  or 3,2 for dd/mm/yyyy
set month-num=%date:~3,2%
  rem remove any leading zero :
IF "%month-num:~0,1%"=="0" SET month-num=%month-num:~1%
FOR /f "tokens=%month-num%" %%a in ("jan feb mar apr may jun jul aug sep oct nov dec") do set mo-name=%%a
echo build filename using %mo-name%
于 2013-03-18T10:15:23.250 に答える
0

これを試してください(うまくいけば、ローカル設定から独立しています):

@echo off &setlocal
for /f "tokens=2*" %%a in ('reg query "HKCU\Control Panel\International" /v sShortDate^|find "REG_SZ"') do set "ssShortDate=%%b"
reg add "HKCU\Control Panel\International" /f /v sShortDate /d "ddd MMM" >nul
set "dowlm=%date%"
reg add "HKCU\Control Panel\International" /f /v sShortDate /d "dd MM yyyy" >nul
set "cdate=%date%"
reg add "HKCU\Control Panel\International" /f /v sShortDate /d "%ssShortDate%" >nul
for /f "tokens=1-2" %%i in ("%dowlm%") do set "dow=%%i"&set "lmonth=%%j"
for /f "tokens=1-3" %%i in ("%cdate%") do set "day=0%%i"&set "month=0%%j"&set "year=%%k"
set "day=%day:~-2%"
set "month=%month:~-2%"
echo.%dow%, %day%.%lmonth%.%year%
endlocal
Pause
于 2013-03-18T21:13:33.653 に答える
0

AjV Jsy の投稿に便乗して、前月の名前の変数を設定するために使用するものを次に示します。このコードをバッチ ファイルで使用して、前月の名前の新しいフォルダーを作成します。これをバックアップと自動化された月末レポートに使用します。

@echo off
set Year=%date:~10,4%
set Month=%date:~4,2%
:: This script sets the variable "PrvMonth" to display the name of the previous month.
if %Month%==01 set PrvMonth=December

if %Month%==02 set PrvMonth=January

if %Month%==03 set PrvMonth=February

if %Month%==04 set PrvMonth=March

if %Month%==05 set PrvMonth=April

if %Month%==06 set PrvMonth=May

if %Month%==07 set PrvMonth=June

if %Month%==08 set PrvMonth=July

if %Month%==09 set PrvMonth=August

if %Month%==10 set PrvMonth=September

if %Month%==11 set PrvMonth=October

if %Month%==12 set PrvMonth=November
于 2013-10-01T15:30:31.270 に答える