お知恵のある方、教えて下さいませ。
現在、会社でバッチを作成しているのですが、過去ログを参照しても、
出来ないので相談させて下さい。
OS:Windows2000
概要:
1、コピー元からコピー先へXCOPYし、
2、そのコピーして来たものの中に「CVS」という文字列が
含まれる物は全て削除
問題点:過去ログにもあったのですが、
ファイル名にスペースが入っていると、for /f は空白タブ区切りで
先頭の一語だけを読み取りファイルを認識してくれない状態です。
ソース:
set cSource_dir="C:\aaa\bbb\ccc"
set cBackup_dir="C:\ddd\eee"
xcopy /y /e /i /h /r %cSource_dir% %cBackup_dir%
dir /a /b %cBackup_dir%> bbb.txt
find /i "cvs" bbb.txt > aaa.txt
for /f "skip=2 delims= " %%A in (aaa.txt) do call :MAIN %%A
:MAIN
set filename=%1
if exist %filename% del /f /a /s %filename%
上記の式ですと、
コピー~cvs2.txtの様に半角スペースが無い場合は
削除出来るのですが、
コピー ~ cvs4.txtの様に、半角スペースが複数ある場合、
どうしても削除が出来ません・・
どなたか、助けて頂けませんかm(__)m
宜しく御願いします。
No.2ベストアンサー
- 回答日時:
> for /f "skip=2 delims=" %%A in (%cDir_temp%) do call :MAIN %%A
ここ、:MAIN の後ろの %%A が括られてませんけど
写し間違いではないのですね?
であれば、ここも括ってみてはどうなりますか?
会社で相当追い込まれていたので・・・・
涙が出るくらい嬉しかったですm(__)m
おかげさまで、無事に成功致しました。
本当に本当にありがとうございましたm(__)m
No.1
- 回答日時:
> for /f "skip=2 delims= " %%A in (aaa.txt) do call :MAIN %%A
:MAIN "%%A"
> :MAIN
> set filename=%1
set filename="%1"
> if exist %filename% del /f /a /s %filename%
if exist "%filename% del /f /a /s "%filename%"
でいかがでしょ。
この回答への補足
すみません(><)無理でした。下記が少し、いじり&まだまだ作成段階ですが
正規のソースです。宜しかったら助言を再度いただけますでしょうか・・
@echo off
rem ------------------------------------------------------------
rem 名称:※バッチ
rem 概要:※バッチ
rem 引数:
rem 注意:
rem 修正履歴:
rem 2007/07/09 新規作成
rem ------------------------------------------------------------
rem 定数定義
rem ------------------------------------------------------------
rem コピー元
set cSource_dir="C:\aaa\bbb\ccc"
rem コピー先
set cBackup_dir="C:\ddd\eee"
rem 日付と時刻の取得
set sDate2=%date:~-10%
set sDate=%sDate2:/=%
set sTime=%time:~0,-3%
rem ログファイル名
set cPre_log=%sDate%_im_backup.log
rem ログ用区切り線
set cLine=----------------------------------------------------
rem ファイル名一覧を作成
set cDir_temp=aaa.txt
rem 表示用文言
set cTitle=[※※※処理]
rem cvs文言
set cCVS="cvs"
rem 最新ソースファイルコピー(xcopy)
rem ------------------------------------------------------------
if not exist %cSource_dir% goto Error
echo %cSource_dir% コピー元フォルダ内一覧 >%cPre_log% 2>&1
echo %cLine% >> %cPre_log% 2>&1
dir /a /b %cSource_dir% >>%cPre_log% 2>&1
echo %cLine% >> %cPre_log% 2>&1
xcopy /y /e /i /h /r %cSource_dir% %cBackup_dir% >>%cPre_log% 2>&1
set error_cd=%errorlevel%
if not %error_cd%==0 goto Error
echo %cLine%>> %cPre_log% 2>&1
rem C:\ddd\eeeフォルダ内一覧出力
rem ------------------------------------------------------------
dir /a /b %cBackup_dir%> bbb.txt
rem C:\ddd\eeeフォルダ内CVS検索
rem ------------------------------------------------------------
find /i %cCVS% bbb.txt > %cDir_temp%
for /f "skip=2 delims=" %%A in (%cDir_temp%) do call :MAIN %%A
:MAIN
rem ------------------------------------------------------------
set filename="%1"
if exist "%filename%" del /f /a /s "%filename%">> %cPre_log% 2>&1
echo %filename%
pause
set error_cd=%errorlevel%
if not %error_cd%==0 goto Error
rem 異常終了
rem ------------------------------------------------------------
:Error
rem 日付と時刻の取得
rem set sDate3=%date:~-10%
rem set sTime3=%time:~0,-3%
rem echo 処理終了日時 %sTime3% %sTime3%
rem echo 異常終了しました、%cLogfile%を参照して下さい
rem pause
rem exit 9
度々、申し訳ありませんが、よろしく御願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Visual Basic(VBA) Excel VBAについて、 フォルダ内のファイルを全て開きたい場合、 FSOを使えば、Dirは使わ 1 2023/01/27 13:18
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ処理 特定の文字以降を...
-
[コンパイルエラー 修飾子が不...
-
超初心者です。シングルクォー...
-
【ExcelVBA】300万件越えCSVか...
-
Excelマクロ 空白セルを無視し...
-
ダブルコーテーション付きでCSV...
-
VBAでcsvファイルもシートもあ...
-
【C#】 csvファイルをバイナリ...
-
PowerShellでファイルの連結方法
-
Fortran:列数の分からないデー...
-
Rubyのルンゲクッタ法がうまく...
-
LibreOffice Calcのマクロで、...
-
INPUTタグ disabledの文字色を...
-
pythonによるcsv出力がうまくい...
-
VB.netでShellExecuteがしたい
-
複数のファイルをまたぐエクセ...
-
fortranでNAのあるデータを読み...
-
VBAで複数のCSVからレコードセ...
-
IPアドレスのゼロパディング
-
Pythonのコードエラーについて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理 特定の文字以降を...
-
VBA テキストボックスを選択状...
-
Access VBA エラー2448について
-
[コンパイルエラー 修飾子が不...
-
verilog HDLについての質問です...
-
SQLでテキストボックスの文字を...
-
型の値をDataGridViewセルに変換...
-
teratermで、ファイル名をinput...
-
フォームのResizeイベントについて
-
MS-DOSバッチファイルコマンド...
-
複数の数字が書かれた文字列をs...
-
分数の計算のプログラミングです。
-
エクセルVBAで公用宣言した...
-
ruby テキストファイル書き出し...
-
言語[RUBY]を用いて、特定列を...
-
Fileの読み込み処理について
-
バッチファイル フォルダ名をフ...
-
バッチ for /f 空白、スペース...
-
プログラミングによるオセロゲ...
-
キーが重複しているデータの統...
おすすめ情報