0

拡張子の前のファイルの後半部分の名前を。で変更しようとしていますbatch script
例えば:

block1.txt --> block1-%mydate%-%mytime%.txt

block2.zip --> block2-%mydate%-%mytime%.txt

ファイル名はとしてプログラムに渡され%1ます。実行ごとに変更されるファイル名は1つだけです。このプログラムは、ファイルの最後にタイムスタンプを次の形式で追加することを目的としています。MMDDYYYY-HHMM.

プログラムの最初の部分は、式を生成します%mydate%-%mytime%

私は一生の間、一般的で一貫して機能的な方法でそれを行う方法を理解することはできません。

何か助けはありますか?

4

2 に答える 2

1

Windowsの場合、 @hobodaveが同様の質問に答えたものは次のとおりです。

コマンドラインの場合

for /F %i in ("c:\foo\bar.txt") do @echo %~ni

出力:bar

.bat ファイルの場合

set FILE=bar
for /F %%i in ("%FILE%") do @echo %%~ni

出力:bar

参考文献:

http://www.computerhope.com/forhlp.htm

Unix の場合

basenameコマンドを使用できます。指定されたパスからパスと拡張子をクリアします。

basename /foo/bar/arch.zip .zip

出力します

arch

ベース名マニュアル: http://unixhelp.ed.ac.uk/CGI/man-cgi?basename

于 2012-09-04T04:54:04.947 に答える
1

もしかして:ファイル名-MMDDYYYY-HHSS.*

for /f "tokens=2-7 delims=/:. " %%a in ("%date% %time: =0%") do set newFileName=%~n1-%%a%%b%%c-%%d%%f%~x1
ren "%~1" "%newFileName%"

それとも、ファイル名-MMDDYYYY-HHMM.*

for /f "tokens=2-6 delims=/:. " %%a in ("%date% %time: =0%") do set newFileName=%~n1-%%a%%b%%c-%%d%%e%~x1
ren "%~1" "%newFileName%"
于 2012-09-04T06:11:21.263 に答える