[過去ログ] 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
552(1): 2018/05/17(木)17:15 ID:TsNh8oQN(7/9) AAS
とりあえず引数の " と ; の対策らしきもの
引数は行末まで1個のみ
もう嫌気がさしたのでこれ以上はやめとく
@echo off
set a=%*"
set /a b=0,c=0
setlocal enabledelayedexpansion
:x
set d="!a:~%b%,1!!a:~%b%,1!"
if !d!=="" goto y
省11
553(1): 2018/05/17(木)17:16 ID:zVFG07SK(3/5) AAS
>>550
@echo off
set "arg1=%1"
call :check_num arg1 result
echo %result% & pause & goto :eof
:check_num
setlocal EnableDelayedExpansion
set "b=FALSE"
for /f "delims=0123456789 tokens=*" %%i in ("!%1!") do (
set "a=%%i" & if not defined a set "b=TRUE"
省7
554(1): 2018/05/17(木)17:18 ID:zVFG07SK(4/5) AAS
なお、+-は除くのが吉
+1+2-3
555(2): 2018/05/17(木)18:05 ID:TsNh8oQN(8/9) AAS
>554.bat 1"&ab"
'ab""' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
TRUE
556: 2018/05/17(木)21:22 ID:zVFG07SK(5/5) AAS
>>555
これ以上はファイル渡しにすべきだろう
set /p
or
for /f delimes^=^ tokens^=*^ eol^=
557: 2018/05/17(木)21:53 ID:TsNh8oQN(9/9) AAS
>>555
554.bat とあるが実際は >>553 のバッチ処理結果です
バッチ2行目の set コマンドの、左側の " が悪さをしてる
当然、下にあるチェック文もそのままでは使えない
引数 1;2 は実際には2つに分かれるが
これで TRUE を返すのは違和感あるので
>>552 では FALSE を返している
2つの %* を %1 にすれば TRUE を返せる筈
558: 2018/05/18(金)12:57 ID:CQAI+hTy(1) AAS
これが分からない
外部リンク:social.technet.microsoft.com
559: 2018/05/18(金)15:14 ID:nWqd9LPa(1) AAS
for /f %%i in ('"cmd /k prompt $h <nul"') do set BS=%%i
set /p AAA=".%BS% 必要ですか?(y/n):"
560: 2018/05/23(水)19:31 ID:Au5e7VGg(1) AAS
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
1FF18
561: 2018/05/24(木)10:48 ID:cPlRxlDn(1) AAS
1FF18
562(1): 2018/06/10(日)03:50 ID:TMZk6u5D(1/2) AAS
バッチファイルと同じ階層に複数のテキストファイルがあって、
バッチファイルに次々とドラッグ&ドロップしたファイル名(拡張子含む)のみリスト化していくのは下記でできるのは分かったのですが…
@echo off
for %%f in (%*) do (
echo %%~nxf
) >> list.txt
しかし、バッチファイルと同じ階層(別の階層でも良いですが)に複数フォルダがあり、各フォルダ内にテキストファイルが複数ある場合に、
フォルダをバッチファイルに1つ1つD&Dすることにより、そのフォルダ内のファイル名(拡張子)のみリスト化していくコマンドが分からず詰まっています。
/rを使わずにわざわざ1つずつD&Dするのは、単にファイル名の順番ではなく、リスト化を意図した順番にしたいからです。
省1
563: 2018/06/10(日)16:08 ID:fV9CYqGb(1) AAS
なんだって?
564(1): 2018/06/10(日)19:14 ID:UcKh88So(1) AAS
@echo off
cd /d "%~1"
for /r %%f in (*.txt) do (
echo %%~nxf
) >> "%~dp0list.txt"
565(1): 2018/06/10(日)20:30 ID:T1x52eBJ(1) AAS
まずは、
>リスト化を意図した順番
これを詳しく説明するところからだな
566: 562 2018/06/10(日)20:59 ID:TMZk6u5D(2/2) AAS
>>564
できました
ありがとうございます!
>>565
意図した順番というのは、D&Dした順番、という意味でした
567: 2018/07/04(水)22:24 ID:gFgZc5FG(1) AAS
GTD
568: 2018/07/05(木)16:48 ID:AeL6VB/V(1) AAS
GTD
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
それで問題なさそうなんだけど、
どういう問題なのか分からないから詳しく現象を説明してくれ
571(2): 2018/07/08(日)18:29 ID:48/+VLR1(2/2) AAS
>>570
ごめん半角じゃなくて全角スペースで切れてるみたいだ
"aaa bbb.txt"
こうなるはずがファイル一つドロップするだけで↓になる
"aaa"
"bbb.txt"
572: 2018/07/08(日)19:34 ID:ayaOLpVg(1) AAS
>>569
forじゃないけど、こんなんじゃあかんの?
:loop
echo %~nx1
shift
if not "%~1"=="" goto :loop
573: 2018/07/08(日)20:03 ID:noo5aK3K(1) AAS
aaa bbb.txtとかa&b.txtみたいなのは%1等で受け取っても切れるね
cmdの独特なコマンドラインパース処理が悪いともいえるし
半角スペース含まれてないのをいいことにD&D時にダブルクォートで囲わないOS側が悪いともいえるし困ったもんだな
D&Dで処理するのはスクリプト言語使った方がいいかもしれん
574: 2018/07/08(日)20:56 ID:O/180cHX(1/2) AAS
いまだにスペース問題抱えてるとは思わないよな
もう10数年以上前からあるのに
575(1): 2018/07/08(日)20:57 ID:3ARFRdhF(1) AAS
こういうの直すと互換性の問題でも起きるの?
576: 2018/07/08(日)21:45 ID:PKG5RTYD(1/3) AAS
>571
こうで良くないかなぁ?/d を使うパターン。
for /d %%f in (%*) do (
echo %%~nxf
)
>>575
そういう仕様に依存している過去のコードの動作に影響が出るのさ。
そういうコードは今までずっと企業内で使われている。
作者不詳のまま…
577: 2018/07/08(日)21:49 ID:PKG5RTYD(2/3) AAS
ごめん、/d でも全角はアウトですた。
わけわからーん
578: 2018/07/08(日)22:24 ID:vrRjc8/F(1/2) AAS
昔、どこかのサイトで似たようなの見たけど
%* を加工して解決しようとしてたが
数十行もあったようなw
でも、俺が動作確認したら全然ダメだったし
579(2): 2018/07/08(日)22:50 ID:E+arm29j(1/2) AAS
>>571
Windows 10 Home 1803 だけど全角空白も & も>>569で問題なく処理できるよ
580(1): 2018/07/08(日)22:57 ID:vrRjc8/F(2/2) AAS
>>579
引数はフルパスだからな
フォルダ名に半角スペースあるだろ
581: 2018/07/08(日)23:16 ID:dDjh6KF7(1) AAS
>>569
for の代わりに forfiles を使うと ""付きファイル名なのでうまくいく(たぶん)
上下前次1-新書関写板覧索設栞歴
あと 421 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.191s*