[過去ログ] 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
569
(6): 2018/07/08(日)09:59 ID:48/+VLR1(1/2) AAS
ファイル名に半角スペースを含んで拡張子も一つじゃない複数のファイルをドロップしてファイルごとに処理したいんだけどどうfor書いたらいい?
今はこんな感じで書いてるんだけど半角スペースで切れちゃう
for %%f in (%*) do (
echo "%%~nxf"
)
570
(1): 2018/07/08(日)17:55 ID:fq5YPvHI(1) AAS
>>569
それで問題なさそうなんだけど、
どういう問題なのか分からないから詳しく現象を説明してくれ
572: 2018/07/08(日)19:34 ID:ayaOLpVg(1) AAS
>>569
forじゃないけど、こんなんじゃあかんの?

:loop
echo %~nx1
shift
if not "%~1"=="" goto :loop
579
(2): 2018/07/08(日)22:50 ID:E+arm29j(1/2) AAS
>>571
Windows 10 Home 1803 だけど全角空白も & も>>569で問題なく処理できるよ
581: 2018/07/08(日)23:16 ID:dDjh6KF7(1) AAS
>>569
for の代わりに forfiles を使うと ""付きファイル名なのでうまくいく(たぶん)
582: 2018/07/08(日)23:36 ID:U6QPmMsx(1) AAS
>>569
全角スペースを文字として扱うか、半角スペースと同じように扱うかについて、
cmdは中途半端な扱いをしているようだしな。
フルパスに半角スペースがあると、全角スペースは文字として扱われるが、
フルパスに半角スペースがないと、全角スペースは半角スペースと同じ扱いになる。
しかもクォートしただけでは対処できないという困ったことに。

対処方法としては、フルパスの何処かに半角スペースを入れてクォートするだけ。
602
(1): 2018/07/12(木)14:54 ID:+klw6xr1(1/9) AAS
>>569 無理矢理にバッチで書いてみた

@echo off
set "a=%cmdcmdline:"=""%"
setlocal enabledelayedexpansion
set /a b=0,n=0
set "s=" & set "d=""
:x1
if not "!a:~%b%,1!"=="/" set /a b+=1 & goto x1
:x2
if "!a:~%b%,1!"=="!d!" set /a n+=1
省8
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.031s