[過去ログ]
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net (1002レス)
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1489207631/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
542: デフォルトの名無しさん [sage] 2018/05/17(木) 00:05:45.00 ID:TsNh8oQN ああ分かった リテラルが 1^2 の場合ね 失礼 http://mevius.5ch.net/test/read.cgi/tech/1489207631/542
543: デフォルトの名無しさん [sage] 2018/05/17(木) 00:31:20.52 ID:TsNh8oQN call :check_num "%~1" result にでもすりゃいいのかな こういうのは考え出すときりが無い様な気がするが http://mevius.5ch.net/test/read.cgi/tech/1489207631/543
544: デフォルトの名無しさん [sage] 2018/05/17(木) 01:18:19.29 ID:zVFG07SK 分かってるのかどうか知らないが、 1"2"が、ECHO は <OFF> です。になるのは、eol="が効いてるため http://mevius.5ch.net/test/read.cgi/tech/1489207631/544
545: デフォルトの名無しさん [sage] 2018/05/17(木) 06:56:29.62 ID:TsNh8oQN eof= を消すと副作用があるし どっちにしろ引数に ; があると誤動作するみたいだし こりゃあもうお手上げだな http://mevius.5ch.net/test/read.cgi/tech/1489207631/545
546: デフォルトの名無しさん [sage] 2018/05/17(木) 07:02:08.36 ID:TsNh8oQN あ、eol= だった http://mevius.5ch.net/test/read.cgi/tech/1489207631/546
547: デフォルトの名無しさん [sage] 2018/05/17(木) 07:11:43.15 ID:pqvSuRzJ 質問者が「もっとすっきりくっきりな方法」と言ってるんだから複雑でトリッキーな方法は求められてなないだろう http://mevius.5ch.net/test/read.cgi/tech/1489207631/547
548: デフォルトの名無しさん [sage] 2018/05/17(木) 08:50:29.12 ID:zVFG07SK >>545 >>269-273 http://mevius.5ch.net/test/read.cgi/tech/1489207631/548
549: デフォルトの名無しさん [sage] 2018/05/17(木) 09:36:13.96 ID:cmWUEZX7 >>547 いつもそうなるけど、バッチじゃ諦めろ、が正解になってしまうよw http://mevius.5ch.net/test/read.cgi/tech/1489207631/549
550: デフォルトの名無しさん [sage] 2018/05/17(木) 10:17:41.58 ID:TsNh8oQN どんな方法でも良いから 引数の中に " とか ; が入ってても 正しく動作するのを頼む というのは絶対に無理なのかね http://mevius.5ch.net/test/read.cgi/tech/1489207631/550
551: デフォルトの名無しさん [sage] 2018/05/17(木) 11:47:23.61 ID:TsNh8oQN >>550が不可ならそれを前提条件にするしかないだろ ちょっと直してみた @echo off call :check_num "%~1" result echo %result% & pause & goto :eof :check_num setlocal set "b=FALSE" & if "%~1"=="" goto x for /f "delims=-+0123456789 tokens=*" %%i in ("%~1") do ( set "a=%%i" & if not defined a set "b=TRUE" ) :x endlocal & set "%2=%b%&
quot; http://mevius.5ch.net/test/read.cgi/tech/1489207631/551
552: デフォルトの名無しさん [sage] 2018/05/17(木) 17:15:43.43 ID:TsNh8oQN とりあえず引数の " と ; の対策らしきもの 引数は行末まで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 if !d!=="""" set /a c+=1 if !d!==";;" set /a c+=1 set /a b+=1 & goto x :y endlocal & set c=%c% set "e=FALSE" & if %c% gtr 1 (goto z) el
se set "a=%*" for /f "delims=-+0123456789 tokens=*" %%i in ("%a%") do ( set "a=%%i" & if not defined a set "e=TRUE" ) :z echo %e% http://mevius.5ch.net/test/read.cgi/tech/1489207631/552
553: デフォルトの名無しさん [sage] 2018/05/17(木) 17:16:28.81 ID:zVFG07SK >>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" ) :x endlocal & set "%2=%b%" goto :eof 引数に ; は指定できない(半角空白、カンマ、セミコロン、
=は引数の区切りを示すため) なお、遅延環境変数の展開を使わないでも以下のようなチェックで最初に弾けば可能 if "%arg1:"=%" equ "%arg1:"=”%" (echo ^"なし) else echo ^"あり http://mevius.5ch.net/test/read.cgi/tech/1489207631/553
554: デフォルトの名無しさん [sage] 2018/05/17(木) 17:18:28.36 ID:zVFG07SK なお、+-は除くのが吉 +1+2-3 http://mevius.5ch.net/test/read.cgi/tech/1489207631/554
555: デフォルトの名無しさん [sage] 2018/05/17(木) 18:05:24.87 ID:TsNh8oQN >554.bat 1"&ab" 'ab""' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 TRUE http://mevius.5ch.net/test/read.cgi/tech/1489207631/555
556: デフォルトの名無しさん [sage] 2018/05/17(木) 21:22:44.52 ID:zVFG07SK >>555 これ以上はファイル渡しにすべきだろう set /p or for /f delimes^=^ tokens^=*^ eol^= http://mevius.5ch.net/test/read.cgi/tech/1489207631/556
557: デフォルトの名無しさん [sage] 2018/05/17(木) 21:53:53.10 ID:TsNh8oQN >>555 554.bat とあるが実際は >>553 のバッチ処理結果です バッチ2行目の set コマンドの、左側の " が悪さをしてる 当然、下にあるチェック文もそのままでは使えない 引数 1;2 は実際には2つに分かれるが これで TRUE を返すのは違和感あるので >>552 では FALSE を返している 2つの %* を %1 にすれば TRUE を返せる筈 http://mevius.5ch.net/test/read.cgi/tech/1489207631/557
558: デフォルトの名無しさん [sage] 2018/05/18(金) 12:57:02.82 ID:CQAI+hTy これが分からない https://social.technet.microsoft.com/Forums/ja-JP/610268b2-c3f7-4e4f-8aa2-9d32353804e4?forum=win10itprogeneralJP http://mevius.5ch.net/test/read.cgi/tech/1489207631/558
559: デフォルトの名無しさん [sage] 2018/05/18(金) 15:14:59.49 ID:nWqd9LPa for /f %%i in ('"cmd /k prompt $h <nul"') do set BS=%%i set /p AAA=".%BS% 必要ですか?(y/n):" http://mevius.5ch.net/test/read.cgi/tech/1489207631/559
560: デフォルトの名無しさん [] 2018/05/23(水) 19:31:22.87 ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 1FF18 http://mevius.5ch.net/test/read.cgi/tech/1489207631/560
561: デフォルトの名無しさん [sage] 2018/05/24(木) 10:48:33.72 ID:cPlRxlDn 1FF18 http://mevius.5ch.net/test/read.cgi/tech/1489207631/561
562: デフォルトの名無しさん [sage] 2018/06/10(日) 03:50:12.86 ID:TMZk6u5D バッチファイルと同じ階層に複数のテキストファイルがあって、 バッチファイルに次々とドラッグ&ドロップしたファイル名(拡張子含む)のみリスト化していくのは下記でできるのは分かったのですが… @echo off for %%f in (%*) do ( echo %%~nxf ) >> list.txt しかし、バッチファイルと同じ階層(別の階層でも良いですが)に複数フォルダがあり、各フォルダ内にテキストファイルが複数ある場合に、 フォルダをバッチファイルに1つ1つD&Dすることに
より、そのフォルダ内のファイル名(拡張子)のみリスト化していくコマンドが分からず詰まっています。 /rを使わずにわざわざ1つずつD&Dするのは、単にファイル名の順番ではなく、リスト化を意図した順番にしたいからです。 どなたかお願いします。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/562
563: デフォルトの名無しさん [sage] 2018/06/10(日) 16:08:13.36 ID:fV9CYqGb なんだって? http://mevius.5ch.net/test/read.cgi/tech/1489207631/563
564: デフォルトの名無しさん [sage] 2018/06/10(日) 19:14:45.63 ID:UcKh88So @echo off cd /d "%~1" for /r %%f in (*.txt) do ( echo %%~nxf ) >> "%~dp0list.txt" http://mevius.5ch.net/test/read.cgi/tech/1489207631/564
565: デフォルトの名無しさん [sage] 2018/06/10(日) 20:30:30.29 ID:T1x52eBJ まずは、 >リスト化を意図した順番 これを詳しく説明するところからだな http://mevius.5ch.net/test/read.cgi/tech/1489207631/565
566: 562 [sage] 2018/06/10(日) 20:59:39.63 ID:TMZk6u5D >>564 できました ありがとうございます! >>565 意図した順番というのは、D&Dした順番、という意味でした http://mevius.5ch.net/test/read.cgi/tech/1489207631/566
567: デフォルトの名無しさん [] 2018/07/04(水) 22:24:09.32 ID:gFgZc5FG GTD http://mevius.5ch.net/test/read.cgi/tech/1489207631/567
568: デフォルトの名無しさん [sage] 2018/07/05(木) 16:48:32.11 ID:AeL6VB/V GTD http://mevius.5ch.net/test/read.cgi/tech/1489207631/568
569: デフォルトの名無しさん [sage] 2018/07/08(日) 09:59:18.33 ID:48/+VLR1 ファイル名に半角スペースを含んで拡張子も一つじゃない複数のファイルをドロップしてファイルごとに処理したいんだけどどうfor書いたらいい? 今はこんな感じで書いてるんだけど半角スペースで切れちゃう for %%f in (%*) do ( echo "%%~nxf" ) http://mevius.5ch.net/test/read.cgi/tech/1489207631/569
570: デフォルトの名無しさん [sage] 2018/07/08(日) 17:55:51.22 ID:fq5YPvHI >>569 それで問題なさそうなんだけど、 どういう問題なのか分からないから詳しく現象を説明してくれ http://mevius.5ch.net/test/read.cgi/tech/1489207631/570
571: デフォルトの名無しさん [sage] 2018/07/08(日) 18:29:00.73 ID:48/+VLR1 >>570 ごめん半角じゃなくて全角スペースで切れてるみたいだ "aaa bbb.txt" こうなるはずがファイル一つドロップするだけで↓になる "aaa" "bbb.txt" http://mevius.5ch.net/test/read.cgi/tech/1489207631/571
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 431 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.023s